这个问题与 enzotib 对以下问题的回答有关:How can I use Bash to find 2 bytes in a binary file,增加它们的值,并替换?
这将两个字节转换为其十六进制值:
$ echo -n $'\x1b\x1f' | od -tx2
0000000 1f1b
0000002
Run Code Online (Sandbox Code Playgroud)
但是现在,这应该给我十进制值:
echo -n $'\x1b\x1f' | od -tu2
0000000 7963
0000002
Run Code Online (Sandbox Code Playgroud)
但是如果我将十六进制值转换为十进制,它应该是
$ printf "%d" 0x1b1f
6943
Run Code Online (Sandbox Code Playgroud)
这是为什么?我od
对十进制输出使用错误吗?