小端字节序和大端字节序

转自达内培训资料

以32位整数:0x12345678为例,该数据位数从左至右依次降低

小端字节序:数据的地位在低地址,高位在高地址。0x12345678的小端字节序为:[0x78, 0x56, 0x34, 0x12],地址从左至右依次升高

大端字节序:数据的高位在低地址,低位在高低值。0x12345678的大端字节序为:[0x12, 0x34, 0x56, 0x78],地址从左至右依次降低

在UDP和TCP等网络应用中,为避免字节徐带来的麻烦,套解字接口库规定凡是在网络中交换的多字节整数(short、int、long、long long和它们的unsigned版本)一律采用网络字节徐传输。所谓网络字节徐,其实就是大端字节序。也就是说发数据时,先从主机字节序转成网络字节序,然后发送;收数据时,先从网络字节序转成主机字节序,然后使用。
– 小端机A,0x12345678,主机序[0x78,0x56,0x34,0x12]转成网络序[0x12,0x34,0x56,0x78],发送给B和C
– 大端机B,接收网络序[0x12,0x34,0x56,0x78],转成主机序[0x12,0x34,0x56,0x78],0x12345678
– 小端机C,接收网络序[0x12,0x34,0x56,0x78],转成主机序[0x78,0x56,0x34,0x12],0x12345678

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页