大端序和小端序,最高有效位和最低有效位

Posted 清水寺扫地僧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大端序和小端序,最高有效位和最低有效位相关的知识,希望对你有一定的参考价值。

小端序(Small-Endian):低地址存放低字节,高地址存放高字节;

大端序(Big-Endian):高地址存放低字节,低地址存放高字节;

计算机业界,端(Endian)表示数据在存储器中的存放顺序。大端与小端是两种数据的存储方式。大端方式将高位存放在低地址,小端方式将高位存放在高地址。(比如将16位数0x1234存放在地址0x00,0x01两个连续地址中时:大端方式0x00中存放0x12,而0x01中存放0x34;小端方式0x00中存放0x34,而x01中存放0x12)

网络字节序(network byte order) (在TCP/IP协议族)是大端,而 主机字节序(host byte order) 大端和小端序均有。Unix 提供了下面这样的函数在网络和主机字节顺序间实现转换:

#include <arpa/inet.h>

uint32_t htonl(uint32_t hostlong);
uint16_t htons(uint16_t hostshort);
//返回:按照网络字节顺序的值;

uint32_t ntohl(uint32_t netlong);
uint16_t ntohs(uint16_t netshort);
//返回:按照主机字节顺序的值;

最高有效位(Most Significant Bit):可简记为MSB。在二进制数中,MSB是最高加权位。与十进制数字中最左边的一位类似。通常,MSB位于二进制数的最左侧;

最低有效位(Least Significant Bit):可简记为LSB。通常,LSB位于二进制数的最右侧;


最高有效位(Most Significant Bit)和最低有效位(Least Significant Bit)是以 b i t bit bit 为单位,而大端序(Big-Endian)和小端序(Small-Endian)是以 数据类型/字节 为单位。

以上是关于大端序和小端序,最高有效位和最低有效位的主要内容,如果未能解决你的问题,请参考以下文章

字节序:大端和小端(Big endian and Little endian)(转自维基百科)

字节序

Linux 网络编程字节序和地址装换

大端小端总结

大端模式与小端模式网络字节顺序与主机字节顺序

字节序大端、小端