位与字节
计算机内存的基本单元是位(bit)。可以将位看做电子开关,可以开,也可以关。关表示值0,开表示值1.8位的内存块可以设置出256种不同的组合。每位排列组合,所以8位的总组合
*
*
*
*
*
*
*
,即
。因为,8位单元可以表示0-255或者-128到127。没增加一位组合数便加倍。这意味着可以吧16位单元设置成65535个不同的值,把32位单元设置成4294672296个不同的值,把64位单元设置为18446744073709551616个不同的值。作为比较,unsigned long存储不了地球上当前的人数和银河系的星星数,而long long能够。
字节(byte)通常指的是8位的内存单元。从这个意义上说,字节指的就是描述计算机内存量的度量单位,1KB等于1024字节,1MB等于1024KB。然而,C++对于字节的定义与此不同。C++字节由至少能够容纳实现的基本字符集的相邻位组成,也就是说,可能取值的树木必须等于或超过字符数目。在美国,基本字符集通常是ASCII和EBCDIC字符集,他们都可以用8位来容纳,所以在使用这两种字符集的系统中,C++字符通常包含8位。有些人使用术语八位组(octet)表示8位字节。