二进制模2除法(CRC循环冗余检验)
一、二进制模2除法运算规则
- 被除数为1则商为1,被除数为0则商为0;
- 余数去掉首位为新的被除数;
- 新的被除数以0开头,则除数变为全0,以1开头则除数不变;
二、举例
101001000 / 1101
三、CRC循环冗余检验
1、 符号
符号 | 解释 |
---|---|
k | 要发送的数据的比特位数 |
M | 要发送的原始数据 |
n | 冗余码位数 |
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循环冗余检验)相关推荐
- CRC 循环冗余检验【计网必考】
CRC 循环冗余检验作为一个重点,也是数据链路层必考的一个考点,所以我把差错检测单独拿出来分析一起看一下.总结不易,一个简单的攒,Thanks♪(・ω・)ノ 目录 一.介绍及工作原理 二.校验计算过程 ...
- CRC循环冗余检验的纠错功能和代码实现
CRC循环冗余检验的纠错功能和代码实现 写这篇文章呢,主要是想聊一下CRC的纠错功能,虽然我们谈到CRC很少说到它的纠错功能,但不代表没有,因此写一文以记录下它的纠错功能以及如何用java代码实现. ...
- 数据链路层差错检测:CRC(循环冗余检验)
1.循环冗余检验(CRC): 在发送端,先把数据划分为祖,假定每组K个比特.现假定待传送的数据M = 101001(k=6).CRC运算就是在数据M后面添加提供差错检测的n位冗余码,然后构成一个帧发送 ...
- 循环冗余检验 CRC
一.总体流程: 把要发送的每组数据2^nM(k+n位)除以除数P(n+1位),计算出冗余码FCS(n位),然后再求出要发送的数据:2^nM+R. 接受端把收到的数据除以除数P,看余数R是否为0,如果为 ...
- 【数据校验杂谈】循环冗余检验 (CRC) 算法原理
2019独角兽企业重金招聘Python工程师标准>>> 循环冗余检验 (CRC) 算法原理 Cyclic Redundancy Check循环冗余检验,是基于数据计算一组效验码,用于 ...
- [剑指offer]面试题10:二进制中1的个数
面试题10:二进制中1的个数 题目:请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数.例如把9表示成二进制是1001,有2位是1.因此如果输入9,该函数输出2. ❖ 可能引起死循环的解法 ...
- C/C++求一个整数的二进制中1的个数(用三种效率不同的方法实现)
题目: 实现一个函数,输入一个整数,输出该数二进制中1的个数.例如把9表示成二进制是1001,有2位是1,因此如果输入是9,该函数输出2 第一种解法(死循环) 判断整数二进制表示中最右边的一位是不是1 ...
- 面试题10-二进制中1的个数
思路: 把一个整数和他减1后的数做位于运算,得到的结果(以10进制的整数给出)相当于把原整数的二进制表示中最右端的1变为0,很多问题都可以这么解决. 2的幂 乘2 除2 2的幂指数次放都可以转化为该数 ...
- 整数二进制中1的个数
要统计一个整数二进制中1的个数,首先我们会想到最简单的方法就是 % 2 再 / 2,然后判断每一位是否为1. 但是,如果这是一个很大的数,频繁的除法运算效率不是很高.而位运算比乘除法效率高,所以我们就 ...
- 从原理到代码理解CRC循环冗余校验
概述:本文详细介绍了CRC循环冗余计算的数学原理,算法中使用的参数说明,并以Modbus协议中的CRC-16算法为例,进行手算验证,同时提供LabVIEW和C语言的直接计算CRC-16 值的代码以及C ...
最新文章
- 区域设置 ID (LCID) 表, 及获取方法
- GDB调试器使用手册
- /src/log4j.xml
- html禁止手机页面放大缩小
- java paint文字_Java中paint怎么用
- A % B Problem
- IT职业就业-学长有话说
- JavaScript在内层循环中断外层循环
- 双 11 模块 79.34% 的代码是怎样智能生成的?
- 生活是没有什么阳光的
- 重磅开源:TN文本分析语言
- 计算机网络双向传输,计算机网络:传输层(2)
- godaddy虚拟主机access数据库中文乱码的解决方法
- bing翻译api php,PHP调用必应翻译API示例源码
- 机器学习10大经典算法
- 使用enum代替Constants
- win10 1050ti anaconda搭建tensorflow-gpu
- 《程序员修炼之道-从小工到专家》读后感
- Ubuntu20.10系统FreeCAD 0.19编译安装
- matlab解决相遇追及问题,猎犬追狐狸试题中追击时间问题的严格求解.doc
热门文章
- C语言二维数组指针用法
- python 广义线性模型_scikit-learn 1.1 广义线性模型(Generalized Linear Models)
- visio中公式太小_多元醇羟值、羟基含量与分子量之间的关系及计算公式
- oracle报错ora-12162,sqlplus登录提示:ORA-12162错误
- spellman斯派曼电源维修XRB100N100K4405
- Java项目:企业固定资产管理系统(java+SpringBoot+VUE+maven+mysql)
- OpenCV IplImage图片结构
- codesys file读写配置参数程序
- Elasticsearch(三)使用 Kibana 操作 ES
- 2018 考研 408 经验贴——总结篇