little-endian和big-endian

本文深入探讨了little-endian和big-endian两种字节序编码方式,通过具体实例展示了它们如何影响内存中数据的存储,以及不同编码方式下可能产生的读取错误。特别指出,网络协议普遍采用big-endian编码,当不同字节序的设备通信时,需进行字节序转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. little-endain是小头端编码方式

内存的低位对应数值低位

举个例子:存放值12345678

       低地址 ------------------> 高地址
       ####################################################
地址 #      100        #     101        #          102       #      103          # 
       ####################################################
值    #0111,1000 #0101,0110 # 0011,0100  #  0001,0010  #

2. big-endain是大头端编码方式

内存的高位对应数值低位

该种方式符合人类思维习惯

举个例子:存放值12345678

       低地址 ------------------> 高地址
       ####################################################
地址 #      100        #     101        #          102       #      103          # 
       ####################################################​​​​​​​
值    # 0001,0010  #0011,0100 # 0101,0110  #  0111,1000  #

3. 总结

从上面可见, 不同编码方式导致内存存放数据不一样,所以不同编码方式会导致读取出错

PS:
所有网络协议也都是采用big endian的方式来传输数据的。所以有时我们也会把big endian方式称之为网络字节序。当两台采
用不同字节序的主机通信时,在发送数据之前都必须经过字节序的转换成为网络字节序后再进行传输。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值