我有两个二进制文件,假设它们应该是相同的,但它们不是。所以我使用二进制差异工具来查看它们。但是, Beyond Compare和UltraCompare这两个不同的工具在一个文件的第一个字节处给了我不同的结果。
我使用 HxD 工具验证内容,似乎 HxD 支持 UltraCompare。
我有两个二进制文件,假设它们应该是相同的,但它们不是。所以我使用二进制差异工具来查看它们。但是, Beyond Compare和UltraCompare这两个不同的工具在一个文件的第一个字节处给了我不同的结果。
我使用 HxD 工具验证内容,似乎 HxD 支持 UltraCompare。
在 Beyond Compare 中,带有交叉阴影线 ▨ 背景的空格表示缺失(添加或删除)字节。在您的图像中,左侧的文件以右侧没有的 0x00 字节开头。BC 将在文件内容中显示一个间隙,以使其余字节在视觉上对齐。这也表明显示为“行号”的十六进制地址在两侧不同,这也是文件其余部分显示为黑色(完全匹配)的原因。间隙对文件的内容没有任何影响,它只是一种更清晰地呈现对齐方式的方法。
UltraCompare 在这种情况下显然没有调整对齐方式,因此每个 0xC8 字节都与 0x00 对齐,反之亦然,这就是为什么整个比较显示为差异(红色)的原因。
HxD 只是显示单个文件,而不是比较,因此不需要使用间隙来显示对齐方式。UltraCompare 是否更好取决于您希望比较做什么。它只是将字节 1 与字节 1、字节 2 与字节 2 等进行比较,而 BC 则在考虑添加和删除的情况下对齐文件。在这种情况下,它显示左侧的字节 1 已添加,因此与右侧的任何内容都不匹配,左侧的字节 2 与左侧的字节 1 相同,左侧的字节 3 与字节 2 匹配右侧等
如果二进制数据可以插入和删除(例如,如果它包含文本字符串或可变长度的标头),那么 BC 的方法会更好,因为如果一侧只有一个添加的字节(如本例中的情况),它可以避免将整个文件显示为不同)。
如果二进制数据是固定大小的,例如位图,那么 UltraCompare 所做的会更好,因为它不会调整偏移量来更好地排列。由于您的文件名被标记为“pixelData”,我认为这是您更喜欢的行为。在这种情况下,在 Beyond Compare 中,您可以通过使用 Session 菜单的 Session Settings... 命令并将“Comparison”对齐设置从“Complete”切换为“None”来更改它。