Отправлено
mandigit 17 февраля 2008 г. 13:39
В ответ на: Keil врет, или я не то делаю? отправлено
<font color=gray>ser</font> 17 февраля 2008 г. 11:16
имеем стандартную базу для рассчета signed int 10 * 30000 = 300000 убираем то, что не поместилось в 2 байта 30000 - 4*65536 = 37856 помня, что у нас signed int 65536-37856=27680 27680 / 30 = 922.666 (со знаком минус) что в переводе на unsigned int будет 65536-922=64614 во втором случае компилятор понимая, что 40000 выходят за границы допустимого диапазона для signed int переходит к signed long То есть все происходит предсказуемо, однако компилятор должен злобно ругаться!