文本文件的十六进制转储中的奇怪 ascii

文本文件的十六进制转储中的奇怪 ascii

我看到这个问题为什么 Ctrl-D (EOF) 会退出 shell?并想尝试第二个答案的示例。所以我创建了一个文件并使用了 hexdump:

federico@home ~ $ cat > test.txt
prova
^C
federico@home ~ $ hexdump test.txt 
0000000 7270 766f 0a61                         
0000006

第二行最后有“6”,如果我尝试使用http://www.rapidtables.com/convert/number/hex-to-ascii.htm从十六进制解码为 ascii 我得到一个奇怪的字母顺序。为什么会发生这种情况?谢谢

答案1

您使用的是小端 CPU,hexdump 显示的 16 位字已进行字节交换。

6是第二个空转储行的偏移量,您的文件仅包含六个字节。

使用od -cod -t x1来获得预期的顺序:

$ od -c test.txt 
0000000   p   r   o   v   a  \n
0000006
$ od -t x1 test.txt 
0000000 70 72 6f 76 61 0a
0000006

相关内容