奇怪的Delphi整数乘法行为
发布时间:2020-12-15 09:43:43 所属栏目:大数据 来源:网络整理
导读:我正在研究一些古老的Delphi代码,我遇到了一些我不太了解的东西. [bla is set to 130245932]outresult := ((bla * 1103516849) + 12359);[outresult is equal to -413953101] 如何将两个正数相乘得到负数?为什么当我将bla变量从等式中取出并直接使用整数时(
我正在研究一些古老的Delphi代码,我遇到了一些我不太了解的东西.
[bla is set to 130245932] outresult := ((bla * 1103516849) + 12359); [outresult is equal to -413953101] 如何将两个正数相乘得到负数?为什么当我将bla变量从等式中取出并直接使用整数时(就像这样) outresult := ((130245932 * 1103516849) + 12359); 在应用程序编译之前我收到错误 [DCC Error] Unit1.pas(60): E2099 Overflow in conversion or arithmetic operation 一些天才将不胜感激.谢谢. 解决方法
好吧,我会回答这个问题.
错误信息应该非常清楚.你有一个整数溢出: 130245932 * 1103516849 因为130245932 * 1103516849 = 143728580475708268这太大而不适合32位整数. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |