endian 定义不应该颠倒吗?

Shouldn't endian definitions be reversed?

我经常使用字节流,所以我理解这个概念 - 有些字节表示比其他字节更高的数值。

在阅读有关定义的 wiki 时,我变得非常困惑。

当我看到单词 "Big-endian" 或 BIG + END 我期望的是 last/ending 字节是最大的。没脑子吧?

对于那些根本不知道字节顺序的人的示例:存储在索引 0 和索引 1 处的字节 0x01 0x00 等于 1,最后一个字节是有效的,等于 256,第一个字节是重要的。 (一个字节给出 2^8 个选项和 2^8 = 256)

显然,如果最后一个字节是最重要的,我会称之为 "big endian"。

但是不,阅读维基百科的定义是完全相反的: 最后一个字节的意义称为小端,第一个字节的意义称为大端。

什么给了?

好吧,从历史上看,这些术语来自格列佛游记(是的,每个人都有维基百科),它们的意思是用来敲开煮鸡蛋的末端。由于该端可能指向下方,因此它可以与较低的地址相关联。此外,有人将这一端用于 'consume' 或 'process' 一个鸡蛋,并且处理数据通常从较低地址开始。也就是说,人们可以争辩说,人们不必知道一个术语的起源就可以正确地解释它。 但无论如何,几乎任何主题都有 'two types of people',所以对一组人来说显而易见的东西可能对另一组人来说是违反直觉的。

不要将 end 这个词视为最后一部分或时间上的最后一个组成部分。

而是将 end 这个词想象成一个长物体的两个空间末端之一,例如扫帚或勺子(或鸡蛋!)。所以长对象可以有两个方向,"wrong end first" 或 "right (correct) end first"。现在对于扫帚或勺子,大多数人都可以同意哪个方向是正确的,哪个方向是错误的(不好 "end")。然而对于一对数据值,有些人优先选择一端,有些人优先选择另一端。

请参阅 Anton 的回答,了解关于从哪一端吃煮鸡蛋的原始模仿。