关于字节序的概念加深
计算机内存地址是从左到右排列的,因此相对来说,【左边的为低内存地址,右边的为高内存地址】,可以按照字节数组来理解,索引越大,地址越高,
如果要存储一个多字节表示的数值,就需要设定存储的顺序,
为了方便计算机处理,最开始设计的是把数据的【低位(字节)存储在低(内存)地址,高位(字节)存储在高(内存)地址】,这就是【小端模式(Little-endian)】,
比如4个字节的0x12345678(十六进制) ,存到内存中为[0x78,0x56,0x34,0x12],
但是这种字节序并不符合人类的阅读习惯,于是就有人将【高位(字节)存储在低(内存)地址,低位(字节)存储在高(内存)地址】,这就是【大端模式(Big-Endian)】,
如上将0x12345678按照大端存储到内存中,就变成了[0x12,0x34,0x56,0x78],
【大端模式】符合人类的习惯,被广泛用在网络传输协议中,比如TCP/IP,因此也被大家称之为【网络字节序】,
【主机字节序】则是一个比较特殊的概念,它表示的是当前运行环境的字节序,并不固定,由其所运行的操作系统和硬件平台决定
【低位在前高位在后】中的“前“和”后”指的是内存地址,靠前(左)的内存地址为低地址,靠后(右)的为高地址,【位】指的是字节位,所以为小端模式,
【高位在前低位在后】相应的为大端模式

浙公网安备 33010602011771号