我正在阅读一篇解释小端和大端之间差异的文章。据我所知,big endian首先将数据存储为“大端”,而小端将数据存储为“小端”。我的困惑在于以下文本块:
Big endian机器:我认为short是两个字节,所以我将把它们读掉:位置s是地址0(W或0x12),位置s + 1是地址1(X或0x34)。由于第一个字节最大(我是大端!),数字必须是256 *字节0 +字节1,或256 * W + X或0x1234。我将第一个字节乘以256(2 ^ 8),因为我需要将其移位8位。
我不明白为什么他们做了8位的移位。 另外,这是另一个我不理解的文本块:
在大端机器上我们看到:
字节:U N I X. 地点:0 1 2 3
哪个有意义。 U是“UN”中的最大字节,首先存储。 >同样适用于IX:我是最大的,并且先储存。
在小端机器上我们会看到:
Byte:N U X I 地点:0 1 2 3
如果我的理解是正确的,那么在小端机器上它不会是“INUX”吗? 完整的文章位于https://betterexplained.com/articles/understanding-big-and-little-endian-byte-order/。
如果有人能清楚这一点,那就太好了。
答案 0 :(得分:0)
好吧,所以我理解现在有多大和小端的工作:
我将解决我理解第二块文字的问题。
基本上,在文章中,作者表示如果我们将“UNIX”这个词存储为shorts
(不是long
s),那么最终结果将是“NUXI”。
我现在将解决我理解第一个文本块的问题。
基本上,完成位移以便在存储器中切换字节的排列,以便在大端的情况下,最重要的字节是第一个,而在小端,最低有效字节是第一个。