位置:首页  >   程序积累  > 大小端模式

大小端模式

不同机器内部对变量的字节存储顺序不同,有的采用大端模式(big-endian),有的采用小端模式(little-endian)。

大端模式是指高位字节数据存放在低地址处,低位字节数据放在高地址处,也称为高尾端
小端模式是指低位字节数据存放在低地址处,高位字节数据放在高地址处,也称为低尾端


在网络上传输数据时,由于数据传输的两端可能对应不同的硬件平台,采用的存储字节顺序也可能不一致,因此 TCP/IP 协议规定了在网络上必须采用网络字节顺序(也就是大端模式)。
通过对大小端的存储原理分析可发现,对于 char 型数据,由于其只占一个字节,所以不存在这个问题,这也是一般情况下把数据缓冲区定义成 char 类型 的原因之一。对于 IP 地址、端口号等非 char 型数据,必须在数据发送到网络上之前将其转换成大端模式,在接收到数据之后再将其转换成符合接收端主机的存储模式。


举一个例子,比如 int n = 0x12345678 //16进制
1)大端模式:
内存地址:  低地址 -----------------> 高地址
n的字节序:0x12  |  0x34  |  0x56  |  0x78
2)小端模式:
内存地址:  低地址 ------------------> 高地址
n的字节序:0x78  |  0x56  |  0x34  |  0x12

文章属性
精彩评论