`
Dustin
  • 浏览: 314518 次
  • 性别: Icon_minigender_1
  • 来自: 广州/成都
社区版块
存档分类
最新评论

Big Endian and Little Endian

阅读更多

  知道什么是Big Endian,Little Endian吗?名字怪怪的,中文一般称为“大端”和“小端”。"Endian" 这个词出自乔纳森·斯威夫特的《格列佛游记》。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开,由此曾发生过六次叛乱,其中一个皇帝送了命,另一个丢了王位。哦嗬,相当血腥。
   但是到了计算机领域,这两个词仅仅用于表示CPU处理多字节的两种不同方式。先来段权威的描述:[from Computer System: A programmer's Perspective 2.1]

   For ordering the bytes representing an object, there are two common conventions. Consider a w-bit integer having a bit representation [xw-1; xw-2; : : : ; x1; x0], where xw-1 is the most significant bit, and x0 is the least. Assuming w is a multiple of eight, these bits can be grouped as bytes, with the most significant byte having bits [xw-1; xw-2; : : : ; xw-8], the least significant byte having bits [x7; x6; : : : ; x0], and the other bytes having bits from the middle. Some machines choose to store the object in memory ordered from least significant byte to most, while other machines store them from most to least. The former convention—where the least significant byte comes first—is referred to as little endian. This convention is followed by most machines from the former Digital Equipment Corporation (now part of Compaq Corporation), as well as by Intel. The latter convention—where the most significant byte comes first—is referred to as big endian. This convention is followed by most machines from IBM, Motorola, and Sun Microsystems. Note that we said “most.” The conventions do not split precisely along corporate boundaries. For example, personal computers manufactured by IBM use Intel-compatible processors and hence are little endian. Many microprocessor chips, including Alpha and the PowerPC by Motorola can be run in either mode, with the byte ordering convention determined when the chip is powered up.

    举个例子吧,“汉”字的Unicode编码是6C49。那么存储这两个字节时,究竟是将6C放在前面,还是将49放在前面?如果将6C放在前面,就是big endian。还是将49放在前面,就是little endian。
    网络中传输的数据都是以Big Endian的方式进行处理的,因此,如果我们的数据存放在little endian的机器上而要进行网络传输的话,我们必须进行相应的字节序转换。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics