如何避免整数溢出?
在以下 C++ 代码中,32767 + 1 = -32768。
#include <iostream>
int main(){
short var = 32767;
var++;
std::cout << var;
std::cin.get();
}
有没有办法让“var”保留为32767,而不会出现错误?
In the following C++ code, 32767 + 1 = -32768.
#include <iostream>
int main(){
short var = 32767;
var++;
std::cout << var;
std::cin.get();
}
Is there any way to just leave "var" as 32767, without errors?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
是的,有:
顺便说一下,您不应该对常量进行硬编码,而应使用
头文件中定义的numeric_limits::max()
代替。您可以将此功能封装在函数模板中:
并按以下方式使用它:
Yes, there is:
By the way, you shouldn't hardcode the constant, use
numeric_limits<short>::max()
defined in<limits>
header file instead.You can encapsulate this functionality in a function template:
and use it like:
使用“无符号短整型”或“长整型”
use 'unsigned short int' or 'long int'