文章目录

  • 模二运算:
    • 模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;

  1. n0个0相亦或,结果必定为0(无论是偶数个0还是奇数个0)(幂等?)
  2. 偶数个1(r1==0时)相亦或,会得到n1/2个0,变为上一种情况,结果也为0
  3. 奇数个1(r1==1时)相亦或,会得到1(由(1),(2)结论可得)
  4. 因此,关键要看1的个数,如果1的个数为奇数,那么结果为1(哪怕没有0参与)
  5. 否则,该结果位上的亦或结果为0

使用该结论

在模二乘法时,您可以用该结论快速完成计算:将1的个数为偶数(0个也算偶数个)(r1==0时)的列对应的结果为写为0,其余位都用1补齐(批量流水处理)

乘/除的实例


再看下除法:

其中乘法的例子,中间部分积的计算按照二进制乘法计算获得

基本信息

生成多项式与其对应的二进制代码之间的关系

生成多项式中各项的系数(0/1)收集起来就是该生成多项式的二进制代码(将作为模二除法的除数),
即,如果某一阶对应的项缺失(该项对应的二进制代码为0),如果存在,则为1

CRC实例

模二除法快进特点(实例)


不快进

帧检验序列FCS(Frame Check Sequence)

在选用CRC检测法时
上例中的最终余数010即为帧检验序列FCS(也叫冗余码)

设计CRC生成多项式的原则

来自wiki 百科

模2运算_模二除法和CRC循环冗余校验相关推荐

  1. crc 校验错误_资深工程师:图说CRC原理应用及STM32硬件CRC外设

    在嵌入式产品应用中,常常需要应对系统数据在存储或者传输过程中的完整性问题.所谓完整性是指数据在其生命周期中的准确性和一致性.这些数据可能存储在EEPROM/FLASH里,或者基于通信协议进行传输,它们 ...

  2. 幂运算 数组_Super Pow:如何高效进行模幂运算

    点击上方蓝字设为星标 东哥带你搞定算法~ 今天来聊一道与数学运算有关的算法题目,LeetCode 372 题 Super Pow,让你进行巨大的幂运算,然后求余数. int superPow(int ...

  3. 基础算法一:大整数模积运算

    文章目录 一.要求 二.实现原理 三.示例代码 四.测试用例 一.要求 只能有加减位运算 支持大数(64位)模积运算(a * b mod m) 处理模加中的溢出问题 (如果 a + b = c 溢出, ...

  4. 数字电路模2运算原理,及模2的加减乘除详解

    模2运算的原理(转) 模2运算是一种二进制算法,CRC校验技术中的核心部分,因此,我们在分析CRC算法之前,必须掌握模2运算的规则.与四则运算相同,模2运算也包括模2加.模2减.模2乘.模2除四种二进 ...

  5. 如何高效进行模乘、模幂运算?——蒙哥马利算法(Montgomery Algorithm)从入门到精通

    蒙哥马利算法(Montgomery Algorithm)从入门到精通 ​ 加密算法中,模运算(包括模乘.模幂运算)是难以避免的,如何高效地进行模运算,是提高算法效率的一个关键. 直观的想法 ​ 在数学 ...

  6. Modular_exponentiation模幂运算

    https://en.wikipedia.org/wiki/Modular_exponentiation 蒙哥马利(Montgomery)幂模运算是快速计算a^b%k的一种算法,是RSA加密算法的核心 ...

  7. 初等数论--同余方程--同余方程运算:模逆运算,模指数运算

    初等数论--同余方程--同余方程运算:模逆运算,模指数运算 博主是初学初等数论(整除+同余+原根),本意是想整理一些较难理解的定理.算法,加深记忆也方便日后查找:如果有错,欢迎指正. 我整理成一个系列 ...

  8. 共模电感适用的频率_分析共模电感和差模电感寄生电容抵消的方法

    这篇文章比较复杂,有的地方我也没有理解或理解不准确,==,如有兴趣,欢迎留言交流! 文章分析了共模电感和差模电感寄生电容抵消的方法,从而改善其高频性能. 首先考虑寄生电容时差模电感的等效电路模型 将上 ...

  9. C++modular exponentiation模幂运算的实现算法(附完整源码)

    C++modular exponentiation模幂运算的实现算法 C++modular exponentiation模幂运算的实现算法完整源码(定义,实现,main函数测试) C++modular ...

  10. 模幂运算问题,使用朴素算法和重复-平方算法(快速幂+C#计算程序运行时间)

    1.什么是模幂运算问题 给出a, k, mod 计算ak(%mod)a^k (\%mod)ak(%mod)的值 k是一个非常大的正整数(超过1e7) 附,一个可以提交的地方: leetcode 372 ...

最新文章

  1. redhat linux7版本种类,RHEL 7 新功能尝鲜:界面简洁,分类明确
  2. c语言 宏 变长参数,科学网—C/C++中处理变长参数函数(Variadic Function)的几个宏 - 彭彬的博文...
  3. CSS列表和一些变化情况
  4. nfs服务器实现文件共享,NFS服务器及Samba服务配置实现文件共享(示例代码)
  5. mysql模板标签数据库设计_MySQL数据库规范化设计
  6. python3字典写入excel_python3:excel操作之读取数据并返回字典 + 写入的案例
  7. 推荐系统的发展演进历史和模型的目标及优缺点
  8. 简易封装手机浏览器touch事件
  9. 为什么李彦宏会候选院士?
  10. gjrand 4.0 发布,C语言的伪随机数生成器
  11. 阿里云吴结生:今天的应用架构,正处在一个不可测的阶段
  12. win10 Visio软件运行 闪退
  13. python爬取别人qq空间相册_Python网络爬虫5 - 爬取QQ空间相册
  14. 世界经典名车中英名称对照
  15. 怎么选最快dns服务器,如何选择适合自己的最快的DNS服务器?-
  16. 主板风扇转不开机是什么问题_cpu风扇转主板不启动怎么办
  17. 某侠图床源码 图片外链服务 带API
  18. OpenGL ES 与原生窗口之间的接口——EGL
  19. Java 并发编程之美:并发编程高级篇之一
  20. 看了这篇文章我才真正理解了!和快手大佬的技术面谈,附架构师必备技术详解

热门文章

  1. JAVA计算机毕业设计宠物医院管理系统Mybatis+源码+数据库+lw文档+系统+调试部署
  2. 手机语音混响软件_Tone2 UltraSpace(音频混响软件)
  3. 蓝色创意酒店装饰设计织梦自适应模板
  4. cadence17.4 下载安装
  5. sql优化的N种方法_持续更新
  6. 效能评估软件解决方案
  7. 【p2p】【EdgeVPNio (evio)】简介: IP-over-P2P (IPOP)
  8. IE浏览器版本 - 升级与降级( IE8、 IE9 、IE10)
  9. 如何在jdk官网下载想要的版本
  10. 尚品汇Vue项目 前台+后台完成品源码(含在线演示)