首先要知道
1MB=1024KB
1KB=1024Byte
1Byte=8bit
存储空间大小=结束地址-起始地址+1(用十进制来算,得到结果的单位是Byte)
十六进制与2进制转换表
十六进制 | 2进制 |
0 | 0000 |
1 | 0001 |
2 | 0010 |
3 | 0011 |
4 | 0100 |
5 | 0101 |
6 | 0110 |
7 | 0111 |
8 | 1000 |
9 | 1001 |
A(10) | 1010 |
B(11) | 1011 |
C(12) | 1100 |
D(13) | 1101 |
E(14) | 1110 |
F(15) | 1111 |
比如图中Block0的地址范围:0x0000 0000-0x1FFF FFFF
对应的二进制地址就是:
0x0000 0000对应0b0000 0000 0000 0000 0000 0000 0000 0000(每4个0对应16进制的1个0)
转换十进制就是0,即起始地址为0
0x1FFF FFFF对应0b1111 1111 1111 1111 1111 1111 1111 1111
转换十进制就是536870911,结束地址大小536870911
因此内存空间大小=536870911-0+1=536870912Byte
536870912Byte=524288KB=512MB
Block1的地址范围:0x20000000-0x3FFFFFFF
0x20000000转换为2进制:1000 0000 0000 0000 0000 0000 0000 0000
0x20000000转换为10进制:536870912
0x3FFFFFFF转换为二进制:1111 1111 1111 1111 1111 1111 1111 1111
0x3FFFFFFF转换10进制:1073741823
所以内存空间大小:1073741823-536870912+1=536,870,912
536870912Byte=524288KB=512MB