位与字节
在了解整型数据内存占用及其表示范围之前,我们必须掌握位与字节的知识。计算机内存以位(bit)为基本单元,其值只有两种:0和1。字节(byte)通常指的是8位的内存单元,从这个意义上说,字节指的就是描述计算机内存量的度量单位,往上还有KB(2^10bytes)、MB(2^20bytes)、GB(2^30bytes)等等。然而C++对字节的定义与此不同。C++字节由至少能够容纳实现的基本字符集的相邻位组成,也就是说,可能取值的数目必须等于或超过字符数目。在美国,基本字符集通常是ASCII和EBCDIC字符集,它们都可以用8位来容纳,所以在使用者两种字符集的系统中,C++字节通常包含8位。然而,国际编程可能需要使用更大的字符集,如Unicode,因此有些实现可能使用16位甚至32位的字节。“字节”的含义依赖于实现,因此在一个系统中,4字节的int可能占32位,也可能占64位。
C++与C一样提供了一种灵活的标准,它确保了最小长度:
·short至少为16位;
·int至少与short一样长;
·long至少为32位,且至少与int一样长;
·long long至少64位,且至少与long一样长。
<