C语言TODO:字节序的部分明

TODO:字节序的有些知情

C语言 1

本文是小编对许节序的片面理解,希望对而发出帮衬哈。

许节序,即字节在电脑被存放时的队列以及输入(输出)时的行列是事先到之于前面还是继交之在前。

1.Little endian:将低序字节存储于胚胎地址,俗称小端

2.Big endian:将高序字节存储在起初地址,俗称大端

仍一个0x01020304(左高右低)这个平头,在稍端下在内存中之布局如下

[04][03][02][01] 注意左是不如地址,而右侧是大地址

每当大举下则是

[01][02][03][04] 注意左是强地址,而右侧是不及地址。

于大端,小端的排序,采用大端方式囤数据是于符合人类的思维习惯。

盖网上有些人对多边,小端的认不一致;等下小编会写一截golang的代码来论证小端,大端排序的对。

网配节序,是凭网络传输的字节序,可能是格外端序或者小端序,取决于软件开始经常报道双方的商事确定。TCP/IP协议RFC1700规定使用“大端”字节序为网络配节序,开发之时刻用遵守就同一规则。

于存活的平台上Intel的X86采用的凡Little-Endian,而如Sun的SPARC采用的虽是Big-Endian。在C语言中,默认是小端(在有点单片机的贯彻中凡是因多方面,比如Keil
51C),Java是阳台无关的,默认是多方面,golang也是默认使用大端。不同语言各自使不同之许节序,相互之间的传递需要开展字节序的变工作。

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

C语言 2

输出:

a: 305419896

BigEndian: 12 34 56 78

b: 305419896

c: 305419896

tt: 0x12345678

//tt输出0x123456,则代表Go使用大端。如果急需针对小端测试只要将BigEndian改化LittleEndian即可,有趣味可以试行。


wxgzh:ludong86

C语言 3