举个例子来说4GB的物理内存,对应的地址空间为0x00000000-0xFFFFFFFF.
推理方法是:
首先问我们需要知道
1字节(byte) = 8位(bit)
在16位的系统中(比如8086微机) 1字 (word)= 2字节(byte)= 16(bit)
在32位的系统中(比如win32) 1字(word)= 4字节(byte)=32(bit)
在64位的系统中(比如win64)1字(word)= 8字节(byte)=64(bit)
不管是多少位的的系统,1字节(byte) = 8位(bit),然后我们要知道
计算机里面单位进制:
1K= 1024B(字节)=2^10
1M = 1024 K = 2^20
1G = 1024 M = 2^30
这里的B是Byte的简写,而不是bit不要搞混了,或者不理解其中的含义。
现在我们来计算4G=4×1024 M=4×1024×1024K=4×1024×1024×1024B=2^32B=
F为16进制的15,但是其位数为15+1,等于2^4,为一个F,所以2的32次方为8个F,所以有0x00000000-0xFFFFFFFF,反过来推亦是如此;
如0x00000000-0x1FFFFFFF,7个F,2^28=256M,1为16进制的1,但是其位数为1+1,所以有2×256M=512M