博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CRC 循环冗余码
阅读量:3931 次
发布时间:2019-05-23

本文共 1492 字,大约阅读时间需要 4 分钟。

微信搜索:编程笔记本。获取更多干货!

微信搜索:编程笔记本。获取更多干货!

点击上方蓝字关注我,我们一起学编程

欢迎小伙伴们分享、转载、私信、赞赏

循环冗余码(CRC)

微信搜索:编程笔记本。获取更多干货!

微信搜索:编程笔记本。获取更多干货!

文章目录

概念:

循环冗余码(CRC),又称为多项式码,是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。CRC 的工作方法是在发送端产生一个冗余码,附加在信息位后面一起发送到接收端,接收端收到的信息按发送端形成循冗余码同样的算法进行校验,如果发现错误,则通知发送端重发。

模 2 运算:

模 2 运算的加减乘除与常规二进制运算类似,不同的一点是:无进位、不借位

一个例子:

1001  - 1100-----------    0101

生成多项式:

比如,G(x) = x^4 + x^3 + 1 是一个生成多项式,那么该生成多项式对应的二进制比特串就是:11001 。即:G(x) = 1*x^4 + 1*x^3 + 0*x^2 + 0*x^1 + 1*x^0 ,取对应系数即可。

步骤:

    1. 假设生成多项式为 m 位,则在需要发送的数据帧后增加 m-1 个 0
    1. 将增广后的数据帧除以生成多项式,取出余数,替换前述操作中的 m-1 个 0 并发送。
    1. 接收端接收到数据帧后,用同样的生成多项式去除这个数据帧,若余数不为 0 ,则表示出错

一个例子:

微信搜索:编程笔记本。获取更多干货!

微信搜索:编程笔记本。获取更多干货!

要发送的数据帧为 1101011011 ,采用的 CRC 生成多项式是 P(x) = x^4 + x + 1

1、生成多项式的二进制比特串为:10011 ,修改数据帧:11010110110000

2、模 2 除法运算:取得余数为 1110 ,修改数据帧:11010110111110

1100001010       ----------------- 10011 | 11010110110000         10011------------------------          10011          10011------------------------              010110               10011------------------------                 10100                 10011------------------------                   1110

3、接收方用同样的方法进行除法运算,得到的余数为 0 ,表示数据帧未发生错误。

1100001010       ----------------- 10011 | 11010110111110         10011------------------------          10011          10011------------------------              010111               10011------------------------                 10011                 10011------------------------                     00

微信搜索:编程笔记本。获取更多干货!

微信搜索:编程笔记本。获取更多干货!

你可能感兴趣的文章
设计模式之享元模式
查看>>
深入分析java中的多态原理(jvm角度分析)
查看>>
SpringBoot系列(1)基础入门和案例
查看>>
设计模式之命令模式
查看>>
springBoot系列(2)整合MongoDB实现增删改查(完整版)
查看>>
java关键字(6)void
查看>>
面试必问:java中String对象为什么要设计成不可变的呢?
查看>>
深入分析java中的反射机制
查看>>
java集合类(7)Stack
查看>>
7、深入分析java中的泛型机制
查看>>
java序列化机制之protobuf框架(快速高效跨语言)
查看>>
6-1 Book类的设计 (10分)
查看>>
7-3 学生类-构造函数 (15分)
查看>>
7-4 类的定义与对象使用 (15分)
查看>>
7-5 jmu-Java-03面向对象基础-02-构造函数与初始化块 (20分)
查看>>
6-1 数组工具类的设计 (16分)
查看>>
7-1 程序填空题2 (12分)
查看>>
7-2 程序改错题3 (12分)
查看>>
7-3 计算年龄 (20分)
查看>>
7-3 利用集合类排序 (12分)
查看>>