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的机器上而要进行网络传输的话,我们必须进行相应的字节序转换。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值