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

Fed*_*nzi 2 hexdump

我看到了这个问题Why does Ctrl-D (EOF) exit the shell?并想在第二个答案上尝试这个例子。所以我创建了一个文件并使用了 hexdump:

federico@home ~ $ cat > test.txt
prova
^C
federico@home ~ $ hexdump test.txt 
0000000 7270 766f 0a61                         
0000006
Run Code Online (Sandbox Code Playgroud)

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

jll*_*gre 10

您使用的是小端 CPU,十六进制转储显示的 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
Run Code Online (Sandbox Code Playgroud)