VS2013环境下64位整数乘法Debug

问题:非常简单的一句话

long long Test;
test = 2100000 * 2100000;

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

test = (long long)2100000 * 2100000;

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

猜你喜欢

转载自blog.csdn.net/yinchao163/article/details/54316550