This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Arithametics

Hi All,

I am experiencing a basic problem in the arithametic of the instrucation

A = ((B-C)*100)/204

during execution of the instruction, if the result of (B-C)*100 is greater than 16 bits what will happen? for avoiding data loss do I have to declare it as 32 bit variable or the proceesor will handle it without changing the size?

Variable A is declared as 16 bit.

do I have to use both B and C 32 bit if i conditionally change the instrucation as

A = ((C-B)*100)/204

during execution ?

my code will look like this


if (B>C) A = ((B-C)*100)/204;

else if (C>B) A = ((C-B)*100)/204 ;


my processor is C8051F020
compiler is C51

best regards
Deepak

0