加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

大小端定义

发布时间:2020-12-14 04:19:07 所属栏目:大数据 来源:网络整理
导读:大小端的定义 Big-Endian和Little-Endian的定义如下: Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。 Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。 举一个例子,比如数字0x12 34 56 78在

大小端的定义

Big-Endian和Little-Endian的定义如下:

  • Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
  • Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。

举一个例子,比如数字0x12 34 56 78在内存中的表示形式为:

大端模式:

低地址 -----------------> 高地址
0x12 | 0x34 | 0x56 | 0x78
高位--------------------低位

内存中的表示:

buf[0]=0x12
buf[1]=0x34
buf[2]=0x56
buf[3]=0x78

可见,大端模式和字符串的存储模式类似。

小端模式:

低地址 ------------------> 高地址
0x78 | 0x56 | 0x34 | 0x12
低位---------------------高位

内存中的表示

buf[0]=0x78
buf[1]=0x56
buf[2]=0x34
buf[3]=0x12

网络中的字节序

网络中的数据均使用大端模式,发送端需要使用htons/htonl来确保转换为大端模式(网络字节序),接收端需要使用ntohs/ntohl来确保转换为本机的大(小)端模式(主机字节序)。

应用层的字节序

要根据具体应用协议去区分,比如Mysql通信协议,使用的是the least significant byte first,其实就是小端方式。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读