📜  什么是 Hexdump (1)

📅  最后修改于: 2023-12-03 15:21:46.246000             🧑  作者: Mango

什么是 Hexdump

Hexdump,也被称为十六进制转储,是一种将二进制数据转换为十六进制和ASCII文本的过程。通过hexdump,程序员可以以更可读的方式查看二进制数据,这对于调试某些算法或协议非常有帮助。

Hexdump的格式:

Hexdump通常以16字节(或更少)的行进行格式化,并显示十六进制数值和对应的ASCII字符。

00000000: 48 65 6C 6C 6F 20 57 6F  72 6C 64 21 0A          Hello World!.

在上面的例子中,第一列显示偏移量,第二列显示16进制值。第三列是ASCII字符的文本表示。偏移量是由右边列 十六进制值的地位计算的。

常用的Hexdump命令

在Linux和MacOS系统中,我们可以使用hexdump或者xxd命令来查看二进制数据的Hexdump形式。以下是常见的命令:

hexdump

使用命令hexdump可以将一个文件转储为Hexdump格式,如下面的例子所示:

$ hexdump -C hello.txt
00000000  48 65 6c 6c 6f 20 57 6f  72 6c 64 21 0a           |Hello World!.|
0000000d

hexdump的-C选项可以让输出更加易读,左侧列显示偏移量,中间列是十六进制值,右侧列显示ASCII文本。

xxd

使用xxd命令可以快速将十六进制转换为文本形式:

$ echo "Hello World!" | xxd
00000000: 4865 6c6c 6f20 576f 726c 6421 0a         Hello World!.

在这种情况下,我们将“Hello World!”传递给xxd命令,它将输出一个空格分隔的十六进制值。左侧列仍显示偏移量,但是格式比hexdump更简单。

总结

通过Hexdump,程序员可以以更可读的方式查看二进制数据,这对于调试某些算法或协议非常有帮助。在Linux和MacOS系统中,我们可以使用hexdump或者xxd命令来查看二进制数据的Hexdump形式。