除去布尔型和扩展的字符型之外,其他整型可以划分为带符号的(signed)和无符号的(unsigned)两种。带符号类型可以表示正数、负数或 0,无符号类型则仅能表示大于等于 0 的值。
类型 int、short、long 和 long long 都是带符号的,通过在这些类型名前添加 unsigned 就可以得到无符号类型,例如 unsigned long。类型 unsigned int 可以缩写为 unsigned。
与其他整型不同,字符型被分为了三种:char、signed char 和 unsigned char。特别需要注意的是:类型 char 和类型 signed char 并不一样。尽管字符型有三种,但是字符的表现形式却只有两种:带符号的和无符号的。类型 char 实际上会表现为上述两种形式中的一种,具体是哪种由编译器决定。
无符号类型中所有比特都用来存储值,例如,8 比特的 unsigned char 可以表示 0 至 255 区间内的值。
C++ 标准并没有规定带符号类型应该如何表示,但是约定了在表示范围内正值和负值的量应该平衡。因此,8 比特的 signed char 理论上应该可以表示 -127 至 127 区间内的值,大多数现代计算机将实际的表示范围定为 -128 至 127。
网友评论