就我而言,两个 INT_MAX 数字的乘积是296447233
,这是不正确的。
long long int product = 0;
product = 2137483647 * 2137483647;
printf("product: %lli\n", product);
我做错了什么,如何纠正?
谢谢 !
你的两个2137483647
属于类型int
。所以他们保持这种类型并溢出。
使他们long long
s:
product = 2137483647LL * 2137483647LL;
or cast:
product = (long long)2137483647 * 2137483647;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)