我正在處理一些古老的Delphi代碼,我遇到了一些我不太明白的東西。奇怪的德爾福整數乘法行爲
[bla is set to 130245932]
outresult := ((bla * 1103516849) + 12359);
[outresult is equal to -413953101]
乘兩個正數如何導致負數?爲什麼它,當我把喇嘛變量的方程,只是直接使用整數(像這樣)
outresult := ((130245932 * 1103516849) + 12359);
我收到錯誤的應用程序甚至編譯
[DCC Error] Unit1.pas(60): E2099 Overflow in conversion or arithmetic operation
一些天才之前將不勝感激。謝謝。
谷歌:「整數溢出」 – Mysticial 2011-12-16 00:23:01