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

小端序(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 

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)是以 数据类型/字节 为单位。

你可能感兴趣的:(计算机网络,网络,socket,字节序,linux,unix)