UTILS.
100% 浏览器内运行

汉明距离计算器

统计两个等长字符串、位串或十六进制值中不同的位置数,并给出归一化距离和高亮的差异对比。

输出

关于此工具

汉明距离计算器统计两个等长输入中不同的位置数——这是纠错和检错码背后的核心指标。两个输入必须等长;若不等长,工具会清晰地报告错误并给出各自长度,而不会臆测某种对齐方式。它会报告原始距离、归一化距离(距离 ÷ 长度,介于 0 到 1 之间)、比较长度、匹配位置数,以及逐位置的差异对比,用红色高亮每一个不匹配处。

三种模式覆盖常见情况。在文本模式下,它逐个码点比较字符串,因此等长意味着字符数相同。在二进制模式下,它会验证每个输入仅由等长的 0 和 1 组成,并统计不同的位——等价于其异或的 popcount。在十六进制模式下,它将两个输入解析为等长的十六进制数,逐半字节异或,并累加置位的比特数,从而给出真正的位级汉明距离;此处长度为总比特数(十六进制位数 × 4)。

计算是纯粹、确定性且完全离线的——你输入的任何内容都不会离开浏览器。汉明距离用于衡量两个码字之间相差多少个单比特错误、比较定长哈希或指纹,以及在生物信息学中比较等长序列。由于它要求等长,当字符串长度可能不同时,请改用编辑距离。

常见问题

为什么两个输入必须等长?
汉明距离仅对等长序列有定义——它比较一个序列的位置 i 与另一个序列的位置 i。若长度不同则没有规范的对齐方式,因此工具会报告错误并给出两者长度。对于长度不同的输入,请改用 Levenshtein(编辑)距离。
二进制模式统计什么?
它验证两个输入都是等长的 0 和 1 字符串,然后统计不同的比特位置——这与两个位串异或结果的人口计数(置位比特数)相同。
十六进制模式如何计算距离?
每个十六进制位是一个半字节(4 比特)。工具逐位异或两个值,并累加所有半字节中置位的比特,从而给出位级汉明距离。用于归一化的长度为总比特数,即十六进制位数乘以四。
什么是归一化距离?
它是原始距离除以比较长度,取值介于 0(完全相同)到 1(每个位置都不同)之间。它让你能够在同一 0–1 尺度上比较不同长度输入的不匹配率。

更多工具