有很多使用Big Endian的电脑吗?我刚刚在5台不同的计算机上测试过,每台计算机都是在不同的年份购买的每个人都使用Little Endian。 Big Endian现在还在使用,还是适用于摩托罗拉6800等旧款处理器?
编辑:
谢谢TreyA,intel.com/design/intarch/papers/endian.pdf是一篇非常好用的文章。它涵盖了下面的每一个答案,并对它们进行了扩展。
答案 0 :(得分:5)
目前使用的处理器有很多大端,或允许选项在大端和小端之间切换端模式(例如SPARC,PowerPC,ARM,Itanium ..)。
这取决于你对“关于endian”的意思。如果您只是编程所需的数据,通常不需要特别关注endianess。当您需要与外界通信时,Endian很重要,例如读/写文件,或通过网络发送数据,而您可以通过直接读取/写入大于1字节的整数来实现这一点。
当您需要处理外部数据时,您需要知道其格式。其格式的一部分是例如知道如何在该数据中编码整数。如果格式指定4字节整数的第一个字节是所述整数的最高有效字节,则读取该字节并将其放在程序中整数的最高有效字节,并且您将能够实现这一点 代码可以在小端和大端机器上运行。
所以它并不是特别关于处理器的endianess,而是你需要处理的数据。该数据可能有整数存储在“endian”中,您需要知道哪些,各种数据格式将根据某些规范使用各种endianess,或者取决于提出该格式的人的心血来潮。
答案 1 :(得分:3)
就不同的架构而言,Big endian仍然是目前使用最多的。事实上,在英特尔和旧的DEC计算机之外,我不知道一个小端:Sparc,Power PC(IBM Unix机器),HP的Unix平台,IBM大型机等都是大端。但这有关系吗?关于我唯一需要考虑字节序的时间是在实现一些低级系统例程时,例如modf
。否则,int
是某个范围内的整数值,就是它。
答案 2 :(得分:1)
以下常见平台使用big-endian编码:
x86 / x64 CPU是little-endian。如果要在二者之间连接二进制数据,你一定要注意这一点。
答案 3 :(得分:0)
问题没有足够的背景。一般来说,您应该始终只是意识到它,但您不需要在日常编码中强调它。如果你计划弄乱整数的内部字节,开始担心字节序。如果您计划对整数进行标准数学运算,请不要担心。
字节序弹出的两个大的地方是网络(大端标准)和二进制记录(必须研究整数是存储大端还是小端)。
答案 4 :(得分:0)
这更符合评论而非答案,但我无法发表评论,我认为这篇文章非常棒,我认为值得。
这是关于1980年以来Danny Cohen关于字节序的经典之作: ON HOLY WARS AND A PLEA FOR PEACE