You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于字符计算汉明码的4个偶校验位?(附Python代码片段)

汉明码校验位计算与完整实现方案

首先修正你代码里的两处问题:

  • 输入验证逻辑错误:原代码判断ASCII_input ==1完全不成立,应该检查输入字符的长度是否为1
  • 8位二进制转换可以用format()函数简化,不用手动反转补0

接下来是核心的校验位计算逻辑:12位汉明码的校验位位于位置1、2、4、8(1-based计数),其余位置填充8位数据位,每个校验位负责覆盖特定位置的偶校验(即覆盖位中1的总数为偶数)。

校验位覆盖规则(偶校验)

  • P1(位置1):覆盖二进制最后一位为1的位置 → 1、3、5、7、9、11
  • P2(位置2):覆盖二进制倒数第二位为1的位置 → 2、3、6、7、10、11
  • P3(位置4):覆盖二进制倒数第三位为1的位置 →4、5、6、7、12
  • P4(位置8):覆盖二进制倒数第四位为1的位置 →8、9、10、11、12

完整实现代码

while True:
    ASCII_input = input("Input a character: ")
    if len(ASCII_input) != 1:
        print("请输入单个字符!")
    else:
        break

ASCII_code = ord(ASCII_input)
print(f"The ASCII value of {ASCII_input} is {ASCII_code}")

# 转换为8位二进制(左侧补0)
bnr = format(ASCII_code, '08b')
print(f"8位二进制数据: {bnr}")

# 初始化12位汉明码数组(索引0未使用,1-12对应汉明码位置1-12)
hamming = [0] * 13
data_bits = list(bnr)

# 填充数据位到对应汉明码位置
hamming[3] = int(data_bits[0])   # D1 → 位置3
hamming[5] = int(data_bits[1])   # D2 → 位置5
hamming[6] = int(data_bits[2])   # D3 → 位置6
hamming[7] = int(data_bits[3])   # D4 → 位置7
hamming[9] = int(data_bits[4])   # D5 → 位置9
hamming[10] = int(data_bits[5])  # D6 → 位置10
hamming[11] = int(data_bits[6])  # D7 → 位置11
hamming[12] = int(data_bits[7])  # D8 → 位置12

# 计算偶校验位
# P1(位置1)
hamming[1] = (hamming[3] + hamming[5] + hamming[7] + hamming[9] + hamming[11]) % 2
# P2(位置2)
hamming[2] = (hamming[3] + hamming[6] + hamming[7] + hamming[10] + hamming[11]) % 2
# P3(位置4)
hamming[4] = (hamming[5] + hamming[6] + hamming[7] + hamming[12]) % 2
# P4(位置8)
hamming[8] = (hamming[9] + hamming[10] + hamming[11] + hamming[12]) % 2

# 生成12位汉明码字字符串
hamming_code = ''.join(str(bit) for bit in hamming[1:13])
print(f"12位汉明码字: {hamming_code}")

# 转换为3位十六进制(大写,补前导0)
hex_value = format(int(hamming_code, 2), '03X')
print(f"十六进制等效值: {hex_value}")

代码说明

  1. 输入验证:确保用户输入单个字符,否则循环提示
  2. 二进制转换:用format(ASCII_code, '08b')直接生成左侧补0的8位二进制字符串
  3. 汉明码填充:将8位数据位按规则放到非校验位位置
  4. 校验位计算:通过对覆盖位求和取模2得到偶校验位
  5. 结果输出:生成12位码字字符串,并转换为3位十六进制值

内容的提问来源于stack exchange,提问作者user15529245

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 23:10:54