c++ 入门 整型溢出
·
我们通常都是将范围内的数字赋值给整型对象,接下来,看一下将整型范围外的数字赋值给整型会发生什么。
#include<iostream>
using namespace std;
//整型溢出(将范围外的数值赋值给整型)
int main()
{
short shortMin = -32769;
short shortMax = 32768;
unsigned short ushortMin = -1;
unsigned short ushortMax = 65536;
int intMin = -2147483647-2;
int intMax = 2147483648;
unsigned int uintMin = -1;
unsigned int uintMax = 4294967296;
long int longMin = -2147483647-2;
long int longMax = 2147483648;
unsigned long int ulongMin = -1;
unsigned long int ulongMax = 4294967296;
cout << "short下溢值:" << shortMin << ",上溢值:" << shortMax << endl;
cout << "unsigned short下溢值:" << ushortMin << ",上溢值:" << shortMax << endl;
cout << "int 下溢值:" << intMin << ",int 上溢值:" << intMax << endl;
cout << "unsigned int 下溢值:" << uintMin << ",上溢值:" << uintMax << endl;
cout << "long int 下溢值:" << longMin << ",上溢值:" << longMax << endl;
cout << "unsigned long int 下溢值:" << ulongMin << ",上溢值:" << ulongMax << endl;
return 0;
}
可能会有人觉得这样的输出很奇怪,这是由于大于整型范围的数值在赋值时发生了溢出,其中低于最小值为下溢,高于为上溢。向下溢出会回到最大值,向上溢出则会回到最小追。
因此我们要根据对数值大小的估计而选择范围合适的数据类型,以免数据溢出。
更多推荐
所有评论(0)