1.内存简介
地址线根数 对应范围 空间大小 计算过程
8 00~FF 256B 2^8 = 256B
16 0000~FFFF 62K 2^16 = 2^6K = 64K
20 00000~FFFFF 1M 2^20 = 2^10K = 1M
24 000000~FFFFFF 16M 2^24 = 2^4*M = 16M
28 0000000~FFFFFFF 256M 2^28 = 2^8 M = 256M
32 00000000~FFFFFFFF 4G 2^32 = 2^2*G = 4G
下面以unsigned int value = 0x12345678为例,分别看看在两种字节序下其存储情况 :
1.大端模式(Big-endian)
高尾端:数据的高字节保存在内存的低地址中。
Big-Endian: 低地址存放高位,如下:
高地址
---------------
buf[3] (0x78) -- 低位
buf[2] (0x56)
buf[1] (0x34)
buf[0] (0x12) -- 高字节
---------------
低地址
2.小端模式(Little-Endian)
低尾端:数据的低字节保存在内存的低地址中。
Little-Endian: 低地址存放低位,如下:
高地址
---------------
buf[3] (0x12) -- 高位
buf[2] (0x34)
buf[1] (0x56)
buf[0] (0x78) -- 低字节
--------------
低地址
内存地址 | 小端模式存放内容 | 大端模式存放内容 |
0x4000 | 0x78 | 0x12 |
0x4001 | 0x56 | 0x34 |
0x4002 | 0x34 | 0x56 |
0x4003 | 0x12 | 0x78 |
3.微软 采用: 小端模式
4.网络字节序:大端模式