2.2.1 整型
在C++中,用于基本整型定义的关键字是int,它表示该类型整数的二进制码在32位计算机中是用4个字节(32位长)来存储的。由于整数有正也有负,因此int整数存储在内存空间中的格式是最高位用做符号位(正数为 0,负数为 1),其余各位为数据位的二进制补码。这样,int类型可以表示-2147483648~+2147483647范围的整数。
为了更好地控制整数的范围和存储空间,C++还用 short(短型)、long(长型)、signed(有符号)和unsigned(无符号)来区分,以便更准确地适应各种情况的需要。
(1)当short修饰int时,称为短整型,写成short int,也可省略int,直接写成short。在大多数计算机上,short表示2个字节,即16位长。默认时,short的最高位是符号位,这样它能表示-32768~+32767范围的整数。
图2.3 不同整型的存储空间的大小
(2)当long修饰int时,称为长整型,写成long int,也可省略 int,直接写成 long。在大多数计算机上,long 表示 4 个字节,即 32 位长。默认时,long的最高位也是符号位,这样它能表示的范围和 int 类型一样。可见,short、int 和 long 可以分别表示不同位长的整数,如图2.3所示。
(3)当unsigned修饰short、int和long时,它强制使它们的符号位(最高位)作为数据位,并与其他位一起来表示整数。这样,它们所表示的整数的最小值是 0,即只能表示正整数。例如,unsigned short表示的整数范围是0~65535。
(4)当signed修饰short、int和long时,由于默认时short、int和long都是有符号的,因而此时signed可以省略。例如,signed int省略为int。
需要说明的是:在 C++中,unsigned int 可省略为 unsigned,而 signed int 既可省略为int,也可省略为signed。