c++关于signed和unsigned...
时间:2010-08-11 来源:lxqcommonyf
c plus fifth 上的一个demonstration概要如下:
cout<<"SHRT_MAX="<<SHRT_MAX<<endl;
short num1=SHRT_MAX;
unsigned short num2=num1;
cout<<++num1<<endl;
cout<<++num2<<endl;
num1=num2=0;
cout<<--num1<<endl;
cout<<--num2<<endl;
输出是:
SHRT_MAX=32767
num1=-32768
num2=32768
num1=-1
num2=65535
解释是:These integer like an odometer.If it go pass the limits the value just starts over at the other end of the range.
也就是说这类数的定义就像是是将数据排在一个环上 当数据达到最大时再加一它将变成该类型的最小值。
这一解释的依据是c++的数据类型转换原理
相关阅读 更多 +