32-битное переполнение с фиксированной точкой - PullRequest
4 голосов
/ 02 марта 2011

Я делаю некоторые «ранние вычисления» на 32-битном ПК с Windows и смотрю на ограничения.

Теперь 2 ** 32 равно 4 294 967 296, и я считаю, что

4294967290 + 5  

совершенно нормально, а

    4294967290 + 6 

вполне правильно переполняется.

Что меня озадачивает, так это

   429496729 * 10

переполнен, хотя продукт, 4294967290, находится в пределах диапазона.

Кто-нибудь заинтересован?

1 Ответ

4 голосов
/ 02 марта 2011

В отсутствие какого-либо кода я бы предположил, что 429496729 неявно печатается как целое число со знаком, для которого 4294967290 - это слишком много.

...