Ви не увійшли.
Сторінки 1
Сори, погорячился.
Правильный ответ:
long t = 200 * 100 *2L;
Компилер не смотря на тип переменной приемника значения не понимает и вычисляет промежуточные значения как 16-битные, в результате переполнение и остаток как результат.
Будьте внимательны при вычислениях с большими числами, особенно когда промежуточные значения большие, а конечный результат помещается в меньшую битность. Порежет.
Всем доброго дня!
Arduino Mega2650 rev3 (clone)
Натолкнулся на такую штуку: не правильно умножает. Вынес в отдельный скетч. Подтвердилось. Прошу проверить на своих девайсах.
void setup() {
Serial.begin(9600);
long t=200*100*4;
Serial.println(t);
t=80000;
Serial.println(t);
}
void loop() {
}
На сериал-мониторе:
14464
80000
Бред. Или баг.
Сторінки 1