0

可能重复:
为什么 x86 是小端?

我个人,而且我打赌很多人都会同意这一点,发现大端字节序符号更容易阅读和理解。我认为大端字节序对于 CPU 来说就像小端字节序一样容易处理。

x86 的黑暗角落一文中,David Chisnall 指出

“[...] 在当时看来是个好主意的功能被逐渐添加,直到我们留下了被称为现代 x86 架构的组合。”

由于 big-endian 字节排序应该同样容易 - 如果不是更容易 - 处理,特别是在浮点类型方面,little-endian 比 big-endian 有什么好处?

4

2 回答 2

1

没有任何。

架构使用big-endian 或 little-endian 排序确实没有具体的理由。有些人喜欢他们每个人。甚至有一些芯片可以两者兼得!但在大多数情况下,架构会选择排序,而这就是你所使用的。世界上有太多的 x86 代码让切换顺序变得毫无意义,即使有充分的理由。

于 2012-07-25T00:30:16.787 回答
1

我发现对于硬件来说,小端更容易,而对人类来说,大端更容易。今天,它根本不重要,因为字节通道都是独立于字节序而被推挤的,而且一些架构无论如何都会这样做(ARM有两个版本的大版本和一个小版本)。可变字长指令和允许未对齐传输是比大与小更大的问题。

由于历史偏好以及随之而来的神话和观点,今天仍然存在强烈的偏好。就像宗教和政治一样,这是一个禁忌话题,可以而且确实会引发激烈的争论。归根结底,每一方都只是在他们一方的支持下更强大,真正的皈依者很少。这些强烈的意见可能是新设计宣布其中一种的来源。

随着 arm 主导处理器世界,x86 覆盖台式机、笔记本电脑和服务器,pci(e) 约定等,我们真的生活在一个小端世界中,不管你喜不喜欢。

如果您“进行系统工程”,则不会有任何字节顺序问题,因为接口规范将定义哪些字节在哪里,并且双方都符合接口规范。

于 2012-07-25T01:33:37.110 回答