软考程序员第四篇复习by myself

校验码

在数据的传输的过程中,可能会发生数据的偏差与错误,为了查出错与纠错就设置了校验码。

奇偶校验码

奇偶校验码属于校验码的一种,主要形式就是在数据末尾增加一个校验位。

8421BCD码带奇校验码8421BCD码带偶校验码8421BCD码
00010001 00001 1
00100010 00010 1
00110011 10011 0
10001000 01000 1

带奇校验码就是数BCD码中1的个数,倘若为奇数则带奇校验码为0,倘若为偶数则带奇校验码为1.
带奇校验码就是数BCD码中1的个数,倘若为偶数则带偶校验码为0,倘若为奇数则带偶校验码为1.

水平校验码

8421BCD码带奇校验码8421BCD码带偶校验码8421BCD码
00010001 00001 1
00100010 00010 1
00110011 10011 0
10001000 01000 1

水平校验码是指 校验码为与信息为处于水平位置关系

垂直校验码

8421BCD码带奇垂直校验码8421BCD码带偶垂直校验码8421BCD码
00010 0 0 10 0 0 1
00100 0 1 00 0 1 0
00110 0 1 10 0 1 1
10001 0 0 01 0 0 0
校验码0 1 1 11 0 0 0

垂直校验码是指 校验码为与信息为处于垂直位置关系

水平垂直校验码

8421BCD码校验码8421BCD码水平校验码带偶校验码8421BCD码水平校验码
00010 0 0 100 0 0 11
00100 0 1 000 0 1 01
00110 0 1 110 0 1 10
10001 0 0 001 0 0 01
垂直校验码0 1 1 11 0 0 0

水平校验码与垂直校验码的结合

海明码

本篇重磅的海明码,笔者也研究了很久,最终让我研究明白了。
海明码存在一个公式:2n=n+数据位数+1
例如:1011的海明码怎么计算?
首先确定1011的数据位数是 4位。
带入公式解得 2n=n+5
解得n = 3
即在数据位中插入 n=3 个验证位
一般验证位需要在 2i位插入。
例如n=3,则i= 0,1,2 (三个数)
即插入为h1 h2 h4位

h7h6h5h4h3h2h1
1011

接着转换化1,2,4为3位二进制,并将0变成通位符
1=001=xx1
2=010=x1x
4=100=1xx
将1-7转化为三位二进制,符合这三个通位符的均为h1 h2 h4的验证数据位。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值