我读了一篇文章,解释了“小”和“大”之间的区别。我理解大端先存储数据“大端”,小端先存储数据“小端”。我的困惑在于下面这一段文字:
大端机器:我认为短字节是两个字节,所以我会将它们读出:位置s是地址0 (W,或0x12),位置s+1是地址1 (X,或0x34)。因为第一个字节是最大的(我是大端!),所以这个数字必须是256 *字节0+字节1,或者256*W + X,或者0x1234。我将第一个字节乘以256 (2^8),因为我需要将其转换到8位以上。
我不明白他们为什么要做8位的小移位。另外,这里还有一段我不明白的文字:
在一台大的终端机器上我们看到: 字节:U位置:0 1 2 3 这很有道理。U是"UN“中最大的字节,它首先存储。对IX也是如此:我是最大的,并且首先存储. 在一台小小的终端机器上我们可以看到: 字节:n U×I位置:0 1 2 3
如果我的理解是正确的,它不是"INUX“,在一个小终端机器上吗?完整的文章在https://betterexplained.com/articles/understanding-big-and-little-endian-byte-order/上发表。
如果有人能澄清这件事,那就太好了。
发布于 2018-04-11 22:15:46
好吧,那么我现在明白了endian有多大有多小:
我将讨论我理解第二组文本的问题。基本上,在本文中,作者指出,如果我们将单词"UNIX“存储为一对shorts (而不是longs),那么最终的结果将是”NUXI“。现在我将讨论我所理解的第一个文本块的问题。基本上,比特移位是为了切换内存中字节的排列,这样,在大端字节的情况下,最重要的字节是第一个,而在小endian中,最不重要的字节是第一个。
https://stackoverflow.com/questions/49724209
复制相似问题