奇怪的Delphi整数乘法行为

奇怪的Delphi整数乘法行为,第1张

概述我正在研究一些古老的Delphi代码,我遇到了一些我不太了解的东西. [bla is set to 130245932]outresult := ((bla * 1103516849) + 12359);[outresult is equal to -413953101] 如何将两个正数相乘得到负数?为什么当我将bla变量从等式中取出并直接使用整数时(就像这样) outresult := 我正在研究一些古老的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位整数.

总结

以上是内存溢出为你收集整理的奇怪的Delphi整数乘法行为全部内容,希望文章能够帮你解决奇怪的Delphi整数乘法行为所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1270855.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存