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