汉明码(海明码)的计算的规则

一.汉明码的由来

1.汉明码(Hamming Code),是在电信领域的一种线性调试码,以发明者理查德·卫斯里·汉明的名字命名。汉明码在传输的消息流中插入验证码,当计算机存储或移动数据时,可能会产生数据位错误,以侦测并更正单一比特错误。由于汉明编码简单,它们被广泛应用于内存(RAM)。

2.海明码一般只能纠1位错。

二.基本知识

设数据位是n位,校验位是k位,则n和k必须满足关系: 2ᵏ-1>=n+k , 数据位是指要检测数据的位数,k才是真正要解出来的未知数.

一、数据与冗余位的关系:

假设有一个数据块,其长度为 m 位

要在数据块中添加 r 个冗余位,使得数据块的总长度变为 m + r

这些冗余位的位置通常是2的幂次方,即第1位、第2位、第4位、第8位等等,这些位置称为校验位(Parity bits)

三.计算的过程

1.首先利用公式2ᵏ-1>=n+k把需要的位数k计算出来,一般最多就是4,这个数字已经是考试中的最大的数字了,也可能是3,然后把k和数据的位数加起来,再把位置是检验位的给留出来,准备填写检验码

2.现在就是计算检验码的过程了,检验码的计算还是比较简单的.

1:在草稿纸上已经写好了这个顺序,这里的数据是0110,需要三位,留出三个位置,如图数据一行所示,我这里下标从1开始计算,是为了方便.
2:有数据的一行的下标,分别用需要检验的来进行表示,即找下标的和.

下标 3=1+2

下标 5=1+4

下标 6=2+4

下标 7=1+2+4

3:观察(这个也是比较重要的)

含有P0的数据写在P0的下面,有0 1 0

含有P1的数据写在P0的下面,有0 1 0

含有P2的数据写在P0的下面,有1 1 0

这个计算就是双一得0 ,单一得1 ;说白了就是数1的个数.

所以这个题目的汉明码的数据为:0110011.

还不会的来私信我,包会.

相关推荐
Tandy12356_6 小时前
手写TCP/IP协议栈——数据包结构定义
c语言·网络·c++·计算机网络
甄心爱学习7 小时前
计算机网络14.2
计算机网络
爱思德学术7 小时前
中国计算机学会(CCF)推荐学术会议-B(计算机网络):IEEE SECON 2026
计算机网络·信息与通信·传感
梁辰兴8 小时前
计算机网络基础:非引导型传输媒体
网络·计算机网络·计算机·传输媒体·计算机网络基础·非引导型
孙严Pay9 小时前
快捷支付和网关支付到底哪个更安全呢?
笔记·科技·计算机网络·其他·微信
爱思德学术10 小时前
中国计算机学会(CCF)推荐学术会议-B(计算机网络):NOSSDAV 2026
计算机网络·音视频·虚拟现实·多媒体
阿恩.7701 天前
2026年1月最新计算机、人工智能、经济管理国际会议:选对会议 = 论文成功率翻倍
人工智能·经验分享·笔记·计算机网络·金融·区块链
CrazyClaz1 天前
计算机网络
计算机网络
梁辰兴1 天前
计算机网络基础:引导型传输媒体
网络·计算机网络·计算机·计算机网络基础·引导型传输媒体
大道戏2 天前
互联网程序设计第12 讲 RMI 程序设计
java·开发语言·计算机网络