在研究ruby时,我遇到了
> "cc".unpack('b8B8')
=> ["11000110", "01100011"]
然后我试图谷歌找到一个关于“最低点”的好答案,但找不到任何好的答案。
任何人都在向我解释或指出一个方向,我可以理解“LSB优先”和“MSB优先”之间的区别。
答案 0 :(得分:8)
它与位的方向有关。请注意,在此示例中,它解压缩了两个ascii“c”字符,但这些位是彼此的镜像。 LSB表示最右边(最不重要)位是第一位。 MSB表示最左边(最重要的)是第一位。
作为一个简单的例子,考虑数字5,它在“普通”(可读)二进制文件中如下所示:
00000101
最低有效位是最右边的1
,因为那是2^0
位置(或只是计划1)。它不会对价值产生太大影响。旁边的那个是2^1
位置(或者在这种情况下只是普通的0),这有点重要。左边的位(2^2
或只是普通的4)仍然更重要。所以我们说这是MSB表示法,因为最重要的位(2^7
)是第一位的。如果我们将它改为LSB,它就变成了:
10100000
容易吗?
(是的,对于你们所有的硬件大师,我知道这会根据字节顺序从一个架构变为另一个架构,但对于一个简单的问题,这是一个简单的答案)