CRC循环冗余码计算

初步条件

1.假设数据位有7位,为 101001

D(初始) = 101001 

2.假设给定约定多项式为4位,为1100,可求得阶级r为len(1100) - 1 = 4-1 = 3

P(多项式) = 1100

r = len(P) -1 = 4-1 = 3

3.根据流程,计算过程中的数据位需要在末尾加上 第二步所求的阶级数数量的阿拉伯数字0,也是是加上三个0

                 D(计算中的数据位) = 101001000

                                                                 

计算过程

那么可以写出计算式初始稿如下:

我们先求第一位商,多项式有四位,我们就在D(计)的第四位上置放1

(区别一.与普通除法的除不尽第一位为0不同,第len(P)位无条件放置1

然后像普通除法一样把除数沉下去,这一步在计算冗余码中是固定不变的,不受任何因素的影响,如图:

接下来就是冗余码除法计算中区别于普通除法的第二个地方

区别二:普通除法的单过程取模是直接相减,但是在这里需要使用模2除,可以简单的理解为两两进行独立异或计算且不存在进位):

演示

    a:1010

    b:1100

    c:待求

这两数进行模2除的求解过程

a为取模过程中的上位数,b为下位数 c为所求结果

a[0] = 1, b[0] = 1  那么c[0]的结果为这两数的异或计算(相同为0不同为1) ,1异或1等于0,所以c[0] = 0

a[1] = 0, b[1] = 1,所以c[1] =  1

a[2] = 1, b[2] = 0,所以c[2] = 1

a[3] = 0, b[3] = 0,所以c[3] = 0

故 c = 0110 

     

如下:

发现 这一步的模运算结果为0110,前置的0我们需要进行忽略,那么实际上只有3位的110剩余,而3位不足以被四位的1100所除,这里可以像普通除法一样从上面拉下来一个数字

发现满足要求可以继续除,那么继续在商处放置一个1(什么时候放0后面会讲到),且将1*1100的结果1100放置于平齐最后一步的的一个有效数字下:

在进行异或计算,直到上面的商没位置即运算完成

最后的结果0100即使我们所求的FCS余数:

故最终所发数据应为 D(初) + FCS = 101001 + 0100   

= 1010010100 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值