TODO:字节序的一对通晓

TODO:字节序的某些精通

C语言 1

本文是小编对字节序的以文害辞驾驭,希望对您有协助哈。

字节序,即字节在计算机中存放时的体系与输入(输出)时的行列是先到的在前依然后到的在前。

一.Little endian:将低序字节存款和储蓄在开场面址,俗称小端

贰.Big endian:将高序字节存款和储蓄在发轫地址,俗称大端

诸如多个0x01020304(左高右低)那个平头,在小端下在内部存款和储蓄器中的布局如下

[04][03][02][01] 注意左侧是低地址,而右手是高地址

C语言,在多方下则是

[01][02][03][04] 注意左侧是高地址,而左侧是低地址。

比较大端,小端的排序,采取大端格局存款和储蓄数据是比较符合人类的思维习惯。

因为网上有些人对多边,小端的认识不等同;等下笔者会写一段golang的代码来论证小端,大端排序的科学。

网络字节序,是指网络传输的字节序,恐怕是大端序或许小端序,取决于软件初步时报纸发表双方的协议分明。TCP/IP协议凯雷德FC1700分明采纳“大端”字节序为互联网字节序,开采的时候要求服从那壹平整。

在存活的阳台上AMD的X8陆采纳的是Little-Endian,而像Sun的SPALacrosseC采纳的就是Big-Endian。在C语言中,暗中同意是小端(在稍微单片机的兑现中是基于多方面,比如Keil
51C),Java是阳台无关的,暗中认可是多方面,golang也是暗中同意使用大端。差异语言各自行使分歧的字节序,相互之间的传递供给举行字节序的转换工作。

最后,附上Golang对大小端的测试代码

C语言 2

输出:

a: 305419896

BigEndian: 12 34 56 78

b: 305419896

c: 305419896

tt: 0x12345678

//tt输出0x12345陆,则表示Go使用大端。若是须求对小端测试只要把BigEndian改成LittleEndian就能够,风乐趣能够实行。


wxgzh:ludong86

C语言 3