1、有符号类型的数据可以存储负数,五符号类型的数据只能存储正数。
2、针对同一种类型,两者可以存储的数据空间大小是一样的,只是数据范围不一样。以 short 类型为例,unsigned short 存储的范围是 0~65535,signed short 存储的范围是 -32768~32767,两种类型的数据可以存储 65536 个数据。
在C++中,如果某种类型的取值超过该类型本身限定的范围(溢出),则其值将从范围的另一端取值。
#include <iostream>
#include <climits>
using std::cin;
using std::cout;
using std::endl;
int main() {
const int kZero = 0;
signed short one = SHRT_MAX;
unsigned short two = SHRT_MAX;
cout << "original: " << endl;
cout << "one : " << one << " two: " << two << endl << endl;
cout << "additon: " << endl;
one += 1;
two += 1;
cout << "one : " << one << " two: " << two << endl << endl;
cout << "substraction: " << endl;
one = kZero;
two = kZero;
--one;
--two;
cout << "one : " << one << " two: " << two << endl;
return 0;
}
运行结果: