我正在调试一个 C++ 程序,我发现由于某种原因,在我的 Visual Studio 2008 版本下,某些数字似乎没有正确存储。比如数字-3254535440好像存储为1040431856,这些数字小到可以存储成long long,所以应该没有问题。如果我运行以下代码,则会显示两条错误消息。我在两台不同的机器上试过。任何想法?谢谢!
if (-3254535440 == 1040431856)
printf("ERROR\n");
long long j = -3254535440;
if (j == 1040431856)
printf("ERROR2\n");
在 Microsoft Visual Studio 2008 版本 9.0.30729.1 SP 下测试