C语言四位海明码编码,C语言实现海明码编码.pdf

C语言实现海明码编码

ISSN1009-3044

Knowledgeand死d确撕电奠知识与技术

Computer

V01.5,No.20,July

2009,PP.5504--5505.5508

用C语言实现海明码的计算

孙连科

(沈阳T.程学院,辽宁沈阳110136)

摘要:简述海明码算法原理。用C语言的位运算方法来求解。并给出用C语言编写的源程序。

关键词:海明码;住运算;编程

中图分类号:TP312文献标识码:A 文章编号:l伽19—3044(2009)20-5504一12

C CodeCalculation

UsingLanguageHamming

SUNLian-ke

instituteof 110136,C㈣

(Shenyang Engineering,Shenyang

Code C tO Writtenthesource inC

Abstract:Brieflyhammingalgorithmtheory,Thelanguageapproachsolvingoperatiom,and program

language.

Key code;bit

words:hammingoperations;programming

在数据通信与网络传输数据时,数据容错是一个非常重要的问题。海明码是目前常用的一种数据容错方法,它在数据传输、数

据压缩等领域运用极其广泛。本文根据海明码算法原理,利用目前理工类大学通常开设的C语言来实现海明码的求解过程,使自动

控制专业、通信专业以及计算机专业的学生,能够运用计算机语言解决后续课程的实际问题,这无论是对C语言的学习,还是对专

业课程的学习都会起到很好的作用。

l海明码的工作原理

海明码是一种具有纠错功能的校验码,关键是使用多余的奇偶校验位来识别一位错误。假设信息码共有k位,校验位共有n位

n+l。海明码的构建方法:

1)把所有2的幂次方的数据位标记为奇偶校验位(编号为1,2,4,8,16,32,64等的位置)

2)其他数据位用于待编码数据(编号为3,5,6,7,9,10,ll,12,13,14,15,17等的位置)

3)每个奇偶校验位的值代表了代码字中部分数据位的奇偶性,其所在位置决定了要校验和跳过的比特位顺序。

位置l:校验1位,跳过1位(1,3,5,7,9,ll,13,15,…)

rl=M,^MfMfMfMfMlIAMlfMl5…

位置2:校验2位,跳过2位(2,3,6,7,10,11,14,15,…)

r2=MfMfMCMfMl,M11^M14^M15…

位置4:校验4位,跳过4位(4,5,6,7,12,13,14,15,20,2l,22,23,…)

r4=M4^M5^M6^MfMlfMlfMl小llfM岔M2fMZM乜…

位置8:校验8位,跳过8位(8一15,24—31,40-47,…)

Is=MfMfMICMll^MlfMl3^M14^MI州¨MOMOM矿M岔M矿MfM3l“M椰^M4l…

如果全部校验的位置中有奇数个l,把该奇偶校验位置为1;如果全部校验的位置中有偶数个l,把该奇偶校验位置为0。

2海明码的产生与接收正确性检验的例子

例1.已知:信息码为:“l00l l01O”

求:海明码码字。

数据位 Ml № MI M‘ 地 地 MT M. M. M。地,‰

饺验也 2。2‘ 2。 2。

信息位 1 0 0 l l 0 l 0

密明码字 rl r: 1 r‘0 0 l r。 1 0 l 0

计算每个校验位的奇偶性(?代表要设置的比特位):

位置l(r1)检查l,3,5,7,9,1l:

明码为:0砭lr400lrsl010

位置2(盼检查2,3,6,7,10,lh

收稿日期:2009-04-14

作者简介:孙连科(1961-),男,吉林梅河口人,教授,研究方向:计算机教学与应用。

5504-·人工■■及识尉技术-·-·-

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值