Hex Editor(十六进制编辑器)是一种用于查看和编辑计算机文件的低级别编辑工具。与常规文本编辑器不同,它允许用户直接查看和修改文件的二进制数据。在 Hex Editor 中,数据通常以十六进制(hex)格式显示,这是计算机科学中常用的数值表示法。
这里我以VS Code中的插件Hex Editor为例,介绍一下怎么使用。
下载上面的插件之后,打开任意一个二进制文件(.bin)。
直接打开会出现一堆乱码。此时选择【右键】->【打开方式】->【Hex Editor】
接着就会以如下的方式打开:
Hex Editor 会以字节的形式对数据进行读取,因此每一组数实际上代表了8bit的二进制数。例如第一个数是B2,实际上代表的是1011 0010。
考虑到我事先存储的是一个uint32位的数,因此应该4个一起读。也就是B2 53 AE 60,转成十进制就是2991828576。
但真的是这样吗?
我们常见的符合人脑思维的正常逻辑的是大端格式,即高字节在低地址,低字节在高地址。这里注意,右下角默认勾选了Little Endian,即更符合计算机思维的小端格式,也就是高字节在高地址,低字节在低地址。因此真正的数应该反过来读,60 AE 53 B2,转成十进制就是1622037426,和右边解码出来的数一样。
同样,第二个数应该为:E6 AF F3 BA
为了验证数据对不对,可以使用matlab读取.bin文件查看:
这里关于字符的总数我们也做一下验证。可以看到,上图中matlab一共读取了16648个数,在VS Code中我们可以查看:
每16个数一行,一共是1042(16进制)行,1042转成10进制就是4162。而一行又表示了4个数(每4个字节表示一个uint32位数),因此一共是4162*4=16648个数。和matlab中读取的一致。