您的位置:首页 > 理论基础 > 计算机网络

关于MSB/LSB Big-Endian/Small-Endian的区别

2010-04-17 10:00 477 查看
很多人写了很多代码,定义了很多文档,但可能却还不知道MSB/LSB Big-Endian/Small-Endian的区别
。说来惭愧,本人也在此问题上犯了错误,故贴以明示

 



MSB:Most   Significant   Bit

LSB:Lest   Significant   Bit


通常,一个芯片的管脚中,对于一个多比特的信号,比如32根的地址线,从低开始按0到31编个号。MSB就是31,LSB就

是0。

如果标记为  ADDR[31:0]就是   MSB   first的方式

如果标记为  ADDR[0:31]就是   LSB    first的方式

即32根的地址线,从低开始按0到31编个号。MSB就是31,LSB就是0

如果非要对逻辑的字节意思做一个MSB,LSB的定义:

那么对于Byte来讲:依次为高比特位-->低比特位,对应于MSB-->LSB

例如:  

01011001   MSB-->LSB

在定义传输时,需要指明是MSB先传输还是LSB先传输,如果是MSB先传输,则先传输0,依次为1,0,.......

Big-Endian

Small-Endian

指的都是对于多字节的数据类型(比如4字节的32位整数),其多个字节的顺序问题是最高

字节在前(Big-Endian)还是最低字节在前(Small-Endian)。

比如:

对于123456789这个整数,其16进制为0x075BCD15

Big-Endian的方式,4个字节依次是:07   4B   CD   15,

Small-Endian的顺序正相反,是:15   CD   4B   07

网络传输多字节时以Big-Endian的方式传输

系统
一般
均会提供htons()或ntohs()函数还进行主机顺序和网络顺序的转换。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  网络 byte 文档