Ответ: Лучше всего делай константы long или float.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Embedder 11 декабря 2003 г. 23:59
В ответ на: IAR 2.20 для MSP - Ошибка в расчетах при определении констант. Подскажите, это глюк, или так должно быть? отправлено Vladimir Ljaschko 11 декабря 2003 г. 23:12

В конкретный случай для компилятора оба 1000 и 30517 - это рядовые int. Так он выполняет умножение как 16-битовое.
Другое дело 1000000 - компилятор понимает что это long, так что делает 32-битовое умножение.
Есть и другие примеры, например:
(1 << 15) - это -32768,
но (1L << 15) - это как можете догадаться +32768,
а (1 << 16) - это всегда 65536.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru