32位最大的整型值为0x7fffffff.
int max = 0x7fffffff;
cout << max << endl;
cout << max+1 << endl;
程序输出:
2147483647
-2147483648
请问这是怎么回事?
32位最大的整型值为0x7fffffff.
int max = 0x7fffffff;
cout << max << endl;
cout << max+1 << endl;
程序输出:
2147483647
-2147483648
请问这是怎么回事?
插一句,C 和 C++ 标准都定义有符号整型的溢出行为是未定义的。亦即不论编译器把这个值弄成多少都是符合标准的,甚至它也可以中止编译或者运行。
参见: http://stackoverflow.com/q/18195715/296473 http://stackoverflow.com/q/16188263/296473
1 回答1.4k 阅读
1 回答1.1k 阅读
1 回答925 阅读
2 回答1.6k 阅读
871 阅读
813 阅读
732 阅读
难道不是吗?
http://zh.wikipedia.org/wiki/%E4%BA%8C%E8%A1%A5%E6%95%B0