模2运算_模二除法和CRC循环冗余校验
文章目录
- 模二运算:
- 模2加/模2减
- 模2乘/模2除
- 部分积之和
- 相关规律
- 使用该结论
- 乘/除的实例
- 基本信息
- 生成多项式与其对应的二进制代码之间的关系
- CRC实例
- 模二除法快进特点(实例)
- 帧检验序列FCS(Frame Check Sequence)
- 设计CRC生成多项式的原则
模二运算:
模2加/模2减
模二加和模二减可以视为亦或(xor)运算
模2乘/模2除
部分积之和
类似于我们列竖式计算的中间计算过程的各行中间结果
部分积的算术和:就是各个中间结果的直接加和
部分积的模二和:以模二和的加法规则(也就是按位异或)来求和中间结果
相关规律
按位亦或时,有如下规律,令n=min(numberOf(1),numberOf(0))min(numberOf(1),numberOf(0))min(numberOf(1),numberOf(0));
n0=numberOf(0)n0=numberOf(0)n0=numberOf(0)n1=numberOf(1)n1=numberOf(1) n1=numberOf(1)
r1=n1%2;
- n0个0相亦或,结果必定为0(无论是偶数个0还是奇数个0)(幂等?)
- 偶数个1(r1==0时)相亦或,会得到n1/2个0,变为上一种情况,结果也为0
- 奇数个1(r1==1时)相亦或,会得到1(由(1),(2)结论可得)
- 因此,关键要看1的个数,如果1的个数为奇数,那么结果为
1
(哪怕没有0参与) - 否则,该结果位上的亦或结果为
0
使用该结论
在模二乘法时,您可以用该结论快速完成计算:将1的个数为偶数(0个也算偶数个)(r1==0时)的列对应的结果为写为0,其余位都用1补齐(批量流水处理)
乘/除的实例
再看下除法:
其中乘法的例子,中间部分积的计算按照二进制乘法计算获得
基本信息
生成多项式与其对应的二进制代码之间的关系
生成多项式中各项的系数(0/1)收集起来就是该生成多项式的二进制代码(将作为模二除法的除数),
即,如果某一阶对应的项缺失(该项对应的二进制代码为0),如果存在,则为1
CRC实例
模二除法快进特点(实例)
不快进
帧检验序列FCS(Frame Check Sequence)
在选用CRC检测法时
上例中的最终余数010即为帧检验序列FCS(也叫冗余码)
设计CRC生成多项式的原则
来自wiki 百科
模2运算_模二除法和CRC循环冗余校验相关推荐
- crc 校验错误_资深工程师:图说CRC原理应用及STM32硬件CRC外设
在嵌入式产品应用中,常常需要应对系统数据在存储或者传输过程中的完整性问题.所谓完整性是指数据在其生命周期中的准确性和一致性.这些数据可能存储在EEPROM/FLASH里,或者基于通信协议进行传输,它们 ...
- 幂运算 数组_Super Pow:如何高效进行模幂运算
点击上方蓝字设为星标 东哥带你搞定算法~ 今天来聊一道与数学运算有关的算法题目,LeetCode 372 题 Super Pow,让你进行巨大的幂运算,然后求余数. int superPow(int ...
- 基础算法一:大整数模积运算
文章目录 一.要求 二.实现原理 三.示例代码 四.测试用例 一.要求 只能有加减位运算 支持大数(64位)模积运算(a * b mod m) 处理模加中的溢出问题 (如果 a + b = c 溢出, ...
- 数字电路模2运算原理,及模2的加减乘除详解
模2运算的原理(转) 模2运算是一种二进制算法,CRC校验技术中的核心部分,因此,我们在分析CRC算法之前,必须掌握模2运算的规则.与四则运算相同,模2运算也包括模2加.模2减.模2乘.模2除四种二进 ...
- 如何高效进行模乘、模幂运算?——蒙哥马利算法(Montgomery Algorithm)从入门到精通
蒙哥马利算法(Montgomery Algorithm)从入门到精通 加密算法中,模运算(包括模乘.模幂运算)是难以避免的,如何高效地进行模运算,是提高算法效率的一个关键. 直观的想法 在数学 ...
- Modular_exponentiation模幂运算
https://en.wikipedia.org/wiki/Modular_exponentiation 蒙哥马利(Montgomery)幂模运算是快速计算a^b%k的一种算法,是RSA加密算法的核心 ...
- 初等数论--同余方程--同余方程运算:模逆运算,模指数运算
初等数论--同余方程--同余方程运算:模逆运算,模指数运算 博主是初学初等数论(整除+同余+原根),本意是想整理一些较难理解的定理.算法,加深记忆也方便日后查找:如果有错,欢迎指正. 我整理成一个系列 ...
- 共模电感适用的频率_分析共模电感和差模电感寄生电容抵消的方法
这篇文章比较复杂,有的地方我也没有理解或理解不准确,==,如有兴趣,欢迎留言交流! 文章分析了共模电感和差模电感寄生电容抵消的方法,从而改善其高频性能. 首先考虑寄生电容时差模电感的等效电路模型 将上 ...
- C++modular exponentiation模幂运算的实现算法(附完整源码)
C++modular exponentiation模幂运算的实现算法 C++modular exponentiation模幂运算的实现算法完整源码(定义,实现,main函数测试) C++modular ...
- 模幂运算问题,使用朴素算法和重复-平方算法(快速幂+C#计算程序运行时间)
1.什么是模幂运算问题 给出a, k, mod 计算ak(%mod)a^k (\%mod)ak(%mod)的值 k是一个非常大的正整数(超过1e7) 附,一个可以提交的地方: leetcode 372 ...
最新文章
- redhat linux7版本种类,RHEL 7 新功能尝鲜:界面简洁,分类明确
- c语言 宏 变长参数,科学网—C/C++中处理变长参数函数(Variadic Function)的几个宏 - 彭彬的博文...
- CSS列表和一些变化情况
- nfs服务器实现文件共享,NFS服务器及Samba服务配置实现文件共享(示例代码)
- mysql模板标签数据库设计_MySQL数据库规范化设计
- python3字典写入excel_python3:excel操作之读取数据并返回字典 + 写入的案例
- 推荐系统的发展演进历史和模型的目标及优缺点
- 简易封装手机浏览器touch事件
- 为什么李彦宏会候选院士?
- gjrand 4.0 发布,C语言的伪随机数生成器
- 阿里云吴结生:今天的应用架构,正处在一个不可测的阶段
- win10 Visio软件运行 闪退
- python爬取别人qq空间相册_Python网络爬虫5 - 爬取QQ空间相册
- 世界经典名车中英名称对照
- 怎么选最快dns服务器,如何选择适合自己的最快的DNS服务器?-
- 主板风扇转不开机是什么问题_cpu风扇转主板不启动怎么办
- 某侠图床源码 图片外链服务 带API
- OpenGL ES 与原生窗口之间的接口——EGL
- Java 并发编程之美:并发编程高级篇之一
- 看了这篇文章我才真正理解了!和快手大佬的技术面谈,附架构师必备技术详解
热门文章
- JAVA计算机毕业设计宠物医院管理系统Mybatis+源码+数据库+lw文档+系统+调试部署
- 手机语音混响软件_Tone2 UltraSpace(音频混响软件)
- 蓝色创意酒店装饰设计织梦自适应模板
- cadence17.4 下载安装
- sql优化的N种方法_持续更新
- 效能评估软件解决方案
- 【p2p】【EdgeVPNio (evio)】简介: IP-over-P2P (IPOP)
- IE浏览器版本 - 升级与降级( IE8、 IE9 、IE10)
- 如何在jdk官网下载想要的版本
- 尚品汇Vue项目 前台+后台完成品源码(含在线演示)