【问题标题】:Unexpected output of 'od''od' 的意外输出
【发布时间】:2021-06-14 03:55:03
【问题描述】:

我不明白“od”程序的输出。

假设我在一个测试文件中写入内容“abc”:

echo "abc" > test.txt

然后字符 a (01100001)、b (01100010) 和 c (01100011) 通过 ASCII 表转换为二进制并保存在文件中。 所以我希望该文件将包含以下位

011000010110001001100011

如果我用'xxd'转换文件,结果如下:

$ cat test.txt | xxd -b
00000000: 01100001 01100010 01100011 00001010                    abc.

(最后 8 位 (.) 已经让我感到困惑,但我认为这是因为 'cat' 的输出)

现在:如果我尝试使用 'od' 转换文件,则会出现以下图片

$ od test.txt
0000000 061141 005143
0000004

我有我的问题。我不明白这些数字是怎么得出的。 据我了解, od 需要一个字节(例如第一个 -> 01100001 -> 'a')并将这个数字转换为八进制数字系统。但这应该导致“141”。

谁能给我解释一下这个问题?

【问题讨论】:

  • test.txt 中的最后一个字节是换行符。

标签: linux binary octal


【解决方案1】:

这就是odab061141 的方式

ab => 0x6162 => 0x6261(交换字节)= 25185(十进制)= 061141(八进制)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-13
    • 2020-02-21
    • 2012-05-06
    • 2019-03-21
    • 2019-08-29
    • 2012-11-05
    • 2020-04-30
    • 1970-01-01
    相关资源
    最近更新 更多