Arrays 大端的顺序能和英国人说100以下数字的方式联系起来吗?小端的顺序能和德国人说这些数字的方式联系起来吗?

Arrays 大端的顺序能和英国人说100以下数字的方式联系起来吗?小端的顺序能和德国人说这些数字的方式联系起来吗?,arrays,binary,byte,endianness,Arrays,Binary,Byte,Endianness,我在想,对我和我周围的大多数人来说,记忆中字节的大端顺序似乎是排列数字的最自然的方式 您从最重要的字节开始,就像您写下数字一样,就像您拼写它们一样,例如28 首先写入最高有效位,然后继续从下一个最高有效位到最低有效位写入下一个数字,这与数字的表示方式相同 但德国人的说法正好相反。他们说数字以最低有效位开始,然后以最高有效位继续 我认为这是一个很好的比喻endianness “我在想,对我来说……内存中字节的大端顺序似乎是排列数字的最自然的方式……你从最重要的字节开始,就像你把数字写下来一样” 实

我在想,对我和我周围的大多数人来说,记忆中字节的大端顺序似乎是排列数字的最自然的方式

您从最重要的字节开始,就像您写下数字一样,就像您拼写它们一样,例如28

首先写入最高有效位,然后继续从下一个最高有效位到最低有效位写入下一个数字,这与数字的表示方式相同

但德国人的说法正好相反。他们说数字以最低有效位开始,然后以最高有效位继续

我认为这是一个很好的比喻endianness

“我在想,对我来说……内存中字节的大端顺序似乎是排列数字的最自然的方式……你从最重要的字节开始,就像你把数字写下来一样”

实际上,所有二进制数据(零/一位)都是以MSB格式写入的。我们总是在左边以MSD(最高有效数字)开头写入值,就像在现实生活中一样

然而,由于在一个字节内有8个插槽要填充,我们从右侧开始写入值本身,并通过向左移动向上递增。PS:Endianness仅适用于多字节级别

概括地说:在一个字节中(保存一个
<100
值,比如28甚至99

  • 28写为28(但由于它是二进制格式,看起来像:
    11100

  • 要写入值,我们从右侧开始:
    x1010
    (最左边的
    1
    是MSD)

  • 因此,值本身以MSB样式写入,但在字节内使用LSB写入样式进行注释

  • 单字节值中没有endiannes的概念

示例:假设位是用于容纳0-9位的插槽

我们仍然将28写为:
[0 0 0 0 0 2 8]
因此二十部分的位置类似于MSB,但整个值从右侧开始,就像是用LSB样式写的一样

由于单个字节没有尾数,写入值28永远不会是这样的:
[0 0 0 0 0 8 2]
,也永远不会是
[2 8 0 0 0 0 0 0 0 0]
,因为这样会给出不正确的82或不正确的28百万

“你从最重要的字节开始,就像你写下数字一样,就像你拼写它们一样,例如,28。。。但德国人的说法正好相反。他们说数字以最低有效位开始,然后以最高有效位继续

我认为这是对endianness的一个很好的类比。”

对不起,不是。当你提到它涉及一个字节时,它就不再是一个好的类比了。一个口头的820短语与书面的十进制值820可能意味着不同的事情


英语中的八十(又称八十)值是多少?按照你的逻辑,德国人也会说八十,对吧?当机器被简单地“反转”时,八十会发生什么“在英语和德语之间转换时的输入?

我认为,当数据通过导线传输时,即使在单个字节内,endianess仍然适用。某些位将在其他位之前发送。这些比特是什么取决于传输的持久性。编辑:我真的不明白你所说的“因此值本身是以MSB样式写入的,但在字节内使用LSB写入样式进行注释”是什么意思。LSB写入样式是什么?这和写下数字有什么不同?