一、二进制模2除法运算规则

  • 被除数为1则商为1,被除数为0则商为0;
  • 余数去掉首位为新的被除数;
  • 新的被除数以0开头,则除数变为全0,以1开头则除数不变;

二、举例

101001000 / 1101

三、CRC循环冗余检验

1、 符号

符号 解释
k 要发送的数据的比特位数
M 要发送的原始数据
冗余码位数
P 除数
Q
R 余数

2、过程

  • 假设待传送的一组数据 M = 101001(现在 k = 6)。我们在 M 的后面再添加供差错检测用的 n 位冗余码一起发送,即发送的数据长度为k+n位。

  • 用二进制的模 2 运算进行 2n 乘 M 的运算,这相当于在 M 后面添加 n 个 0

  • 得到的 (k + n) 位的数除以事先选定好的长度为 (n + 1) 位的除数 P,得出商是 Q 而余数是 R,余数 R 比除数 P 少1 位,即 R 是 n 位。

3、举例

k=6  M=101001  n=3  P=1101

那么得到被除数( M 后面添加 n 个 0)为101001000,除数为1101,进行二进制模2除法运算,结果为商 Q=110101余数 R=001(过程参考上面的二、

把余数 R 作为冗余码添加在数据 M 的后面发送出去。
因此发送的数据为101001001,共(k+n = 9)位。

二进制模2除法(CRC循环冗余检验)相关推荐

  1. CRC 循环冗余检验【计网必考】

    CRC 循环冗余检验作为一个重点,也是数据链路层必考的一个考点,所以我把差错检测单独拿出来分析一起看一下.总结不易,一个简单的攒,Thanks♪(・ω・)ノ 目录 一.介绍及工作原理 二.校验计算过程 ...

  2. CRC循环冗余检验的纠错功能和代码实现

    CRC循环冗余检验的纠错功能和代码实现 写这篇文章呢,主要是想聊一下CRC的纠错功能,虽然我们谈到CRC很少说到它的纠错功能,但不代表没有,因此写一文以记录下它的纠错功能以及如何用java代码实现. ...

  3. 数据链路层差错检测:CRC(循环冗余检验)

    1.循环冗余检验(CRC): 在发送端,先把数据划分为祖,假定每组K个比特.现假定待传送的数据M = 101001(k=6).CRC运算就是在数据M后面添加提供差错检测的n位冗余码,然后构成一个帧发送 ...

  4. 循环冗余检验 CRC

    一.总体流程: 把要发送的每组数据2^nM(k+n位)除以除数P(n+1位),计算出冗余码FCS(n位),然后再求出要发送的数据:2^nM+R. 接受端把收到的数据除以除数P,看余数R是否为0,如果为 ...

  5. 【数据校验杂谈】循环冗余检验 (CRC) 算法原理

    2019独角兽企业重金招聘Python工程师标准>>> 循环冗余检验 (CRC) 算法原理 Cyclic Redundancy Check循环冗余检验,是基于数据计算一组效验码,用于 ...

  6. [剑指offer]面试题10:二进制中1的个数

    面试题10:二进制中1的个数 题目:请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数.例如把9表示成二进制是1001,有2位是1.因此如果输入9,该函数输出2. ❖ 可能引起死循环的解法 ...

  7. C/C++求一个整数的二进制中1的个数(用三种效率不同的方法实现)

    题目: 实现一个函数,输入一个整数,输出该数二进制中1的个数.例如把9表示成二进制是1001,有2位是1,因此如果输入是9,该函数输出2 第一种解法(死循环) 判断整数二进制表示中最右边的一位是不是1 ...

  8. 面试题10-二进制中1的个数

    思路: 把一个整数和他减1后的数做位于运算,得到的结果(以10进制的整数给出)相当于把原整数的二进制表示中最右端的1变为0,很多问题都可以这么解决. 2的幂 乘2 除2 2的幂指数次放都可以转化为该数 ...

  9. 整数二进制中1的个数

    要统计一个整数二进制中1的个数,首先我们会想到最简单的方法就是 % 2 再 / 2,然后判断每一位是否为1. 但是,如果这是一个很大的数,频繁的除法运算效率不是很高.而位运算比乘除法效率高,所以我们就 ...

  10. 从原理到代码理解CRC循环冗余校验

    概述:本文详细介绍了CRC循环冗余计算的数学原理,算法中使用的参数说明,并以Modbus协议中的CRC-16算法为例,进行手算验证,同时提供LabVIEW和C语言的直接计算CRC-16 值的代码以及C ...

最新文章

  1. 区域设置 ID (LCID) 表, 及获取方法
  2. GDB调试器使用手册
  3. /src/log4j.xml
  4. html禁止手机页面放大缩小
  5. java paint文字_Java中paint怎么用
  6. A % B Problem
  7. IT职业就业-学长有话说
  8. JavaScript在内层循环中断外层循环
  9. 双 11 模块 79.34% 的代码是怎样智能生成的?
  10. 生活是没有什么阳光的
  11. 重磅开源:TN文本分析语言
  12. 计算机网络双向传输,计算机网络:传输层(2)
  13. godaddy虚拟主机access数据库中文乱码的解决方法
  14. bing翻译api php,PHP调用必应翻译API示例源码
  15. 机器学习10大经典算法
  16. 使用enum代替Constants
  17. win10 1050ti anaconda搭建tensorflow-gpu
  18. 《程序员修炼之道-从小工到专家》读后感
  19. Ubuntu20.10系统FreeCAD 0.19编译安装
  20. matlab解决相遇追及问题,猎犬追狐狸试题中追击时间问题的严格求解.doc

热门文章

  1. C语言二维数组指针用法
  2. python 广义线性模型_scikit-learn 1.1 广义线性模型(Generalized Linear Models)
  3. visio中公式太小_多元醇羟值、羟基含量与分子量之间的关系及计算公式
  4. oracle报错ora-12162,sqlplus登录提示:ORA-12162错误
  5. spellman斯派曼电源维修XRB100N100K4405
  6. Java项目:企业固定资产管理系统(java+SpringBoot+VUE+maven+mysql)
  7. OpenCV IplImage图片结构
  8. codesys file读写配置参数程序
  9. Elasticsearch(三)使用 Kibana 操作 ES
  10. 2018 考研 408 经验贴——总结篇