在wiki中,“big-endian”是指多个字节的存储顺序。
一个字节由 8 位组成,注意这些位的顺序也很重要。
我这样做了dd if=/dev/sda count=1 | xxd -b
,发现字节是按照地址的相反方向增加存储的:
01100011
(低地址在左边,而这个字节是ascii字符'c')它似乎是位级的“大端”。
如何解释这个奇怪的现象?
答案1
xxd
将读取的每个字节转换为{十六进制、二进制、八进制}数字并打印该内容,而不是所述字节在内存或其他地方的表示形式。我熟悉的所有数字写入方案都是大端的,所以这就是您得到的。
答案2
位仅按显示顺序呈现。它们在计算机内部不按任何特定顺序存储。例外情况是位在处理器内部可单独寻址的情况。在所有这些情况下,0 都表示最低有效位。
如何xxd
显示位与如何存储位无关。