什么是六角转储 - 这是什么意思?

Nis*_*ant 5 hexdump

thegladiator:~/cp$ cat new.txt
Hello World This is a Trest Progyy

thegladiator:~/cp$ hexdump new.txt
0000000 6548 6c6c 206f 6f57 6c72 2064 6854 7369
0000010 6920 2073 2061 7254 7365 2074 7250 676f
0000020 7979 000a                              
0000023
Run Code Online (Sandbox Code Playgroud)

那个文本数据如何用Hex表示?这是什么意思 ?请任何人都可以告诉我.

Kev*_*imm 8

它正是它所说的,以十六进制格式转储数据:

H 48 
e 65
l 6c
l 6c
o 6f
Run Code Online (Sandbox Code Playgroud)

奇怪的是,所有字节都被交换(65 48:e H)

如果你在*nix系统上,你可以使用'od -x',或者'man od'会告诉你从od获取数据的所有方法:)

  • 也许小端? (8认同)
  • @Eric如果这是linux`hexdump`那么默认输出格式(OP使用的)等于`-x`,它将数据显示为16位整数.因此,字节序是一个问题.OP应该尝试使用`-c`选项来查看切换是否消失. (5认同)

Law*_*man 6

文件中的文本new.txt使用ASCII编码存储.每个字母用数字表示,十进制:32-127十六进制:20-7F.所以前三个字母(H,e,l)用十进制数表示:72,101,108和十六进制数:48,65,6C

Hexdump默认情况下,输入文件的每个16位字,new.txt并将此字输出为十六进制数.因为它以16位而不是8位运行,所以您会以意外的顺序看到输出.

如果您改为使用xxd new.txt,您将看到预期顺序的输出.