先记住一个公式:内存大小=存储字节数=地址个数=末地址-首地址+1
大家都知道1个字节=1byte=8Bit 也就是一个字节占用一个八位地址(0000 0000)=0x00
1KB=1024字节=1024个地址
1MB=1024KB
1GB=1024MB
1KB=1024字节换成16进制就是0x400个地址,如果首地址是0x00的话,那么1KB的内存分配的地方就是0x00~0x3FF
2KB=2048字节换成16进制就是0x800个地址,如果首地址是0x00的话,那么1KB的内存分配的地方就是0x00~0x7FF
3KB=3072字节换成16进制就是0xC00个地址,如果首地址是0x00的话,那么1KB的内存分配的地方就是0x00~0xBFF
4KB=4096字节换成16进制就是0x100016进制个地址,如果首地址是0x00的话,那么1KB的内存分配的地方就是0x00~0xFFF
…………………………………………………………………………
…………………………………………………………………………..
1MB=1024KB=1024*0x400=0x400*0x400=0x100000个地址, 如果首地址是0x00的话,那么1MB的内存分配的地方就是0x00~0xFFFFF
1GB=1024MB=1024*0x100000=0x400*0x100000=0x40000000个地址, 如果首地址是0x00的话,那么1GB的内存分配的地方就是0x00~0x3FFFFFFF
验证一下:
0x000000~0x2FFFFF,是多大的内存?
字节数=0x2FFFFF-0x00+1=0x300000字节=3MB=?KB
0x300000除以1024=0x300000/0x400=0x3000/0x4
因为是16进制所以3先乘以16等于48,然后(48+0)/4=12=C
即0x3000/0x4=0xC00,0xC00=12*(16^2)=3*4*(16^2)=3*1024KB=3MB
如果首地址是0x00的话,那么10GB的内存分配的地方是0x00~?
1GB=0x40000000个地址10GB=10*0x40000000=0x280000000
10*4=40。40/16=2……8
0x00~0x27FFFFFFF
验证一下10GB/1MB=0x280000000/0x100000=0x2800
换成16进制2*16^3+8*16=16^2*(32+8)= 10*4*16^2=10*1024MB=10GB
4GB=4*0x40000000=0x100000000  0x00~0xFFFFFFFF
8GB=8*0x40000000=0x200000000  0x00~0x1FFFFFFFF