0x01 大小端简介
大小端,即为数据的存储方式。
小端,也称为低位优先(little-endian),即为数据的低位(可以类比为整数中的个位),存储在低位地址中。
假设我们想存储一个十六进制数:0x1234,假设系统使用小端的存储方式,其在内存中出现的顺序就是
34 12(假设存储地址从左到右依次递增)。 小端的存储方式是有利于计算机系统处理数据的,但不符合人们的常有逻辑的。
大端,也称为高位优先(big-endian),即为数据的低位(可以类比为整数中的个位),存储在高位地址中。
假设我们想存储一个十六进制数:0x1234,假设系统使用大端的存储方式,其在内存中出现的顺序就是
12 34(假设存储地址从左到右依次递增)。 大端的存储方式与小端相对,符合人们的常有逻辑的,但不利于计算机系统处理数据的。
0x02 实际使用
由于大小端各有优劣,所以计算机界为此有过争论以哪一种为主才是正确,但并未达成共识。
但实际使用是各有确定的,对于 Windows 的 x86 系统就是使用的低位优先(小端)而其它的系统可能会使用大端。
0x03 带来的影响
在现实环境中,由于各个主机的大小端不一所以通过网络传输数据也都需要有一定的规则。
人们规定所有的主机都需要将主机的字节序转化为网络字节序,当另一主机收到后,根据自身的大小端进行传化。
网络字节序也是大端的存储,所以对于主机为大端的则不用进行转换存储顺序。
1520

被折叠的 条评论
为什么被折叠?



