C++编程基础:数据类型、运算符与库函数详解
1. 数据范围与类型转换
在C++编程中,我们需要特别注意变量的数据范围。以下代码展示了有符号和无符号整数在计算时的不同表现:
using namespace std;
int main()
{
int signedVar = 1500000000; //signed
unsigned int unsignVar = 1500000000; //unsigned
signedVar = (signedVar * 2) / 3; //calculation exceeds range
unsignVar = (unsignVar * 2) / 3; //calculation within range
cout << "signedVar = " << signedVar << endl; //wrong
cout << "unsignVar = " << unsignVar << endl; //OK
return 0;
}
在这个例子中,两个变量都先乘以2再除以3。虽然结果比原始数字小,但中间计算结果比原始数字大。有符号变量 signedVar 的中间结果超出了 int 类型的范围(-2,147,483,648 到 2,147,483,647),导致结果错误;而无符号变量 unsignVar 能正确记录结果。这提醒我
超级会员免费看
订阅专栏 解锁全文
652

被折叠的 条评论
为什么被折叠?



