至少重要一点

时间:2011-07-18 21:38:07

标签: ruby computer-science

在研究ruby时,我遇到了

> "cc".unpack('b8B8')
 => ["11000110", "01100011"] 

然后我试图谷歌找到一个关于“最低点”的好答案,但找不到任何好的答案。

任何人都在向我解释或指出一个方向,我可以理解“LSB优先”和“MSB优先”之间的区别。

1 个答案:

答案 0 :(得分:8)

它与位的方向有关。请注意,在此示例中,它解压缩了两个ascii“c”字符,但这些位是彼此的镜像。 LSB表示最右边(最不重要)位是第一位。 MSB表示最左边(最重要的)是第一位。

作为一个简单的例子,考虑数字5,它在“普通”(可读)二进制文件中如下所示:

00000101

最低有效位是最右边的1,因为那是2^0位置(或只​​是计划1)。它不会对价值产生太大影响。旁边的那个是2^1位置(或者在这种情况下只是普通的0),这有点重要。左边的位(2^2或只是普通的4)仍然更重要。所以我们说这是MSB表示法,因为最重要的位(2^7)是第一位的。如果我们将它改为LSB,它就变成了:

10100000

容易吗?

(是的,对于你们所有的硬件大师,我知道这会根据字节顺序从一个架构变为另一个架构,但对于一个简单的问题,这是一个简单的答案)