32位最大整型值+1后是多少
32位最大的整型值为0x7fffffff.
int max = 0x7fffffff;
cout << max << endl;
cout << max+1 << endl;
程序输出:
2147483647
-2147483648
请问这是怎么回事?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
难道不是吗?
http://zh.wikipedia.org/wiki/%E4%BA%8C%E8%A1%A5%E6%95%B0
插一句,C 和 C++ 标准都定义有符号整型的溢出行为是未定义的。亦即不论编译器把这个值弄成多少都是符合标准的,甚至它也可以中止编译或者运行。
参见: http://stackoverflow.com/q/18195715/296473 http://stackoverflow.com/q/16188263/296473
很正确啊,这个刚好是一个循环,这个不就是叫做溢出嘛,计算机组成原理上讲的有,平时我们写程序时也应该注意这个问题