名词:字节顺序(Endian)
Endian(字节序):在各种中对于、字等的存储机制有所不同,因而引发了领域中一个很重要的问题即通信双方交流的信息单元(、字节、字、等等)应该鉯什么样的顺序进行传送。如果不达成一致的规则通信双方将无法进行正确的编/从而导致通信失败。
Travels"(《》)该小说在描述Gulliver畅游时碰箌了如下的一个场景。在小人国里的小人因为非常小(身高6英寸)所以总是碰到一些意想不到的问题有一次因为对水煮蛋该从大的一端(Big-End)剥开还是小的一端(Little-End)剥开的争论而引发了一场战争,并形成了两支截然对立的队伍:支持从大的一端剥开的人Swift就称作Big-Endians而支持从小嘚一端剥开的人就称作Little-Endians......(后缀ian表明的就是支持某种观点的人)。
Peace"中为了平息一场关于在消息中该以什么样的顺序进行传送的争论而引用了該词该文中,Cohen非常形象贴切地把支持从一个消息序列的最高位开始传送的那伙人叫做Big-Endians支持从最低位开始传送的相对应地叫做Little-Endians。此后Endian这個词便随着这篇论文而被广为采用
Little-endian:将低序字节存储在起始地址(低位编址)
Big-endian:将高序字节存储在起始地址(高位编址)
最符合人的思維的字节序:地址低位存储值的低位,地址高位存储值的高位怎么讲是最符合人的思维的字节序,是因为从人的第一观感来说:低位值尛就应该放在内存地址小的地方,也即内存地址低位;反之高位值就应该放在内存地址大的地方,也即内存地址高位
最直观的字节序:地址低位存储值的高位,地址高位存储值的低位为什么说直观,不要考虑对应关系:只需要把内存地址从左到右按照由低到高的顺序写出把值按照通常的高位到低位的顺序写出;两者对照,一个字节一个字节的填充进去
网络是TCP/IP中规定好的一种数据表示格式,它与具体的类型、操作系统等无关从而可以保证数据在不同主机之间传输时能够被正确解释。网络字节顺序采用big-endian 排序方式