第二章:信息的表示和处理

信息存储

1字节 = 8位
大多数计算机使用一个字节,作为最小的可寻址的存储器单位。
每个字节都有一个地址,这个地址是一个唯一的数字。

字长

对于32位的机器,一个字长为32位。
对于64位的机器,一个字长为64位。
地址是个唯一的数字,它是由一个字长来编码的,即地址占一个字长的大小。
也就是说,对于32位的机器而言,可能的地址数字值在 0 ~ 2^32 范围内。
每个地址可以指向一个字节大小的存储空间,2^32 = 4.29 * 10^9 byte = 4GB。对于大多数应用而言,这个空间足够大了。
c语言的指针的值就是地址,所以对于64位的机器而言,用int类型(4字节)的变量来存储一个指针(占8个字节的大小),是会导致问题的。
例如一个 int类型的变量x的地址为 0x100,也就是说 &x = 0x100, 那么x的四个字节将被存储在0x100,0x101, 0x102, 和0x103 位置。
十六进制的数字,0x01234567 每两个16进制的数就能占1个字节,所以 0x01234567 占了4个字节。