企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### :-: 字节序 目前计算机中采用两种字节存储机制:大端(Big-endian)和小端(Little-endian)。 ` MSB (Most Significan Bit/Byte):最重要的位或最重要的字节。` ` LSB (Least Significan Bit/Byte):最不重要的位或最不重要的字节。` Big-endian 规定 MSB 在存储时放在低地址,在传输时放在流的开始;LSB 存储时放在高地址,在传输时放在流的末尾。Little-endian 则相反。常见的 Intel 处理器使用 Little-endian,而 PowerPC 系列处理器则使用 Big-endian,另外 TCP/IP 协议和 Java 虚拟机的字节序也是 Big-endian。 例如十六进制整数 0x12345678 存入以 1000H 开始的内存中: ![图片](https://s1.ax1x.com/2020/06/25/NBD9je.png) `图片来自firmianay` 我们在内存中实际地看一下,在地址`0xffffd584` 处有字符`1234`,在地址`0xffffd588`处有字符`5678`。 ``` gdb-peda$ x/w 0xffffd584 0xffffd584: 0x34333231 gdb-peda$ x/4wb 0xffffd584 0xffffd584: 0x31 0x32 0x33 0x34 gdb-peda$ python print('\x31\x32\x33\x34') 1234 gdb-peda$ x/w 0xffffd588 0xffffd588: 0x38373635 gdb-peda$ x/4wb 0xffffd588 0xffffd588: 0x35 0x36 0x37 0x38 gdb-peda$ python print('\x35\x36\x37\x38') 5678 gdb-peda$ x/2w 0xffffd584 0xffffd584: 0x34333231 0x38373635 gdb-peda$ x/8wb 0xffffd584 0xffffd584: 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 gdb-peda$ python print('\x31\x32\x33\x34\x35\x35\x36\x37\x38') 123455678 db-peda$ x/s 0xffffd584 0xffffd584: "12345678" ```