VS2013环境下64位整数乘法Debug

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yinchao163/article/details/54316550

问题:非常简单的一句话

long long Test;
test = 2100000 * 2100000;

按道理结果应该为:4410000000000
实际值为:-931412992
用程序员计算器看一下,很明显是把计算值默认当做了32位,溢出了。
使用强制类型转换:

test = (long long)2100000 * 2100000;

可以得到正确的结果。
我纳闷儿的是,这个默认32位结果是哪里定义的?VS2013哪里可以设置吗?
ps:这个不起眼的问题折腾了我一整天,谁能想到这个地方会出Bug呢,还以为算法出了大问题,特此记录一下。小心使得万年船~~~

展开阅读全文

没有更多推荐了,返回首页