模2除法(CRC校验码计算)_crc校验模二算法

模2除法(CRC校验码计算)_crc校验模二算法鉴于网上的讲解自己好不容易才看懂…所以自己整理了一下,也方便大家能够理解如果有不对或者不准确的地方,恳请大家指出…模2加减法模2除法需要用到模2加减法,关于模2加减法,其实就是异或操作,规则如下://不需要考虑进位和借位0±0=01±1=00±1=11±0=1例:1101±1001=0100计算如下:…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

鉴于网上的讲解自己好不容易才看懂…所以整理了一下, 也方便大家能够理解

模2加减法

模2除法需要用到模2加减法,关于模2加减法,其实就是异或操作,规则如下:

//不需要考虑进位和借位
0 ± 0 = 0
1 ± 1 = 0
0 ± 1 = 1
1 ± 0 = 1: 1101 ± 1001 = 0100
计算如下:
		  1 1 0 1 
		± 1 0 0 1 
		-----------
		  0 1 0 0

Jetbrains全家桶1年46,售后保障稳定

简记:同为0,异为1


模2除法:

规则:假设被除数X,和除数P,余数R

  1. X除以P(对X和P做模2加减法),当前X首位为1时,商1,为0时商0

  2. 所得余数R去除首位(即左移一位):

    若R第一位为0,将其作为新的被除数,除以0,此时其首位为0,商即为0
    若R第一位为1,将其作为新的被除数,除以P,此时其首位为1,商即为1

  3. 重复第2步直到R位数少于P位数


例:1111000对除数1101做模2除法:

先说结果: 商1011111

整体运算

      1 0 1 1     //商
---------------
1 1 1 1 0 0 0     //被除数,注意首位为1
1 1 0 1	          //被除数首位为1,除以除数
---------------
  0 1 0 0 0 0     //余数去除首位,作为新的被除数
  0 0 0 0         //被除数首位为0,除以0
---------------
    1 0 0 0 0     //余数去除首位,作为新的被除数
    1 1 0 1       //被除数首位为1,除以除数 
---------------
      1 0 1 0     //余数去除首位,作为新的被除数
      1 1 0 1     //被除数首位为1,除以除数
---------------
        1 1 1     //余数,此时余数位数少于除数,不能继续除了

分步分析

第一步(每一步其实都是模2加减法运算):
      1         //商
-------------
1 1 1 1 0 0 0   //被除数,注意首位为1
1 1 0 1	        //除数
-------------
0 0 1 0 0 0 0   //余数,模2运算后结果

商的第一位:被除数首位为1,商为1(只要被除数首位非0,商就是1)

第二步:余数去除首位(左移一位),当第一位为0时,除以0;为1时,除以除数。
      1 0        //商
---------------
  0 1 0 0 0 0    //余数去除首位,作为新的被除数
  0 0 0 0        //被除数首位为0,除以0
---------------
  0 1 0 0 0 0    //余数,模2运算后结果

商的第二位:被除数首位为0,商为0(只要被除数首位是0商就是0)

第三步
      1 0 1      //商
----------------
    1 0 0 0 0    //余数去除首位,作为新的被除数
    1 1 0 1      //被除数首位为1,除以除数
----------------
    0 1 0 1 0    //余数,模2运算后结果

商的第三位:被除数首位为1,商为1

第四步
      1 0 1 1     //商
----------------
      1 0 1 0     //余数去除首位,作为新的被除数
      1 1 0 1     //被除数首位为1,除以除数
----------------
      0 1 1 1     //余数,此时余数位数(这里的0要忽略掉,不参与下一轮,因为最上面的被除数后面
      			  //没有数可以给这里往后补一位了)少于除数位数,不能继续除了

商的第四位:被除数首位为1,商为1
此时不能继续做除法,计算结束

得到最终结果: 商1011111
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/200865.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ODBC学习笔记—SQLAllocHandle

    ODBC学习笔记—SQLAllocHandleSQLAllocHandle函数定义:顾名思义,该函数就是用来分配句柄的,句柄类型参考参数详解。SQLRETURNSQLAllocHandle(     SQLSMALLINT     HandleType,     SQLHANDLE     InputHandle,     SQLHANDLE*     OutputHandlePtr);参数详解:Handl

    2022年7月14日
    18
  • python怎么表示取余_python如何实现取余操作

    python怎么表示取余_python如何实现取余操作python实现取余操作的方法:可以利用求模运算符(%)来实现。求模运算符可以将两个数相除得到其余数。我们还可以使用divmod()函数来实现取余操作,具体方法如:【divmod(10,3)】。在python中要实现取余操作可以使用求模运算符(%),该运算符可以将两个数相除得到其余数。(推荐教程:Python入门教程)如果一个数恰好能被另外一个数据整除,则余数为0,%运算后返回结果为0。可利用余数…

    2022年4月25日
    57
  • window location href 跳转之后怎么获得后面带参数

    window location href 跳转之后怎么获得后面带参数functionGetRequest(){varurl=location.search;//获取url中"?"符后的字串vartheRequest=newObject();if(url.indexOf("?")!=-1){varstr=url…

    2022年7月13日
    34
  • 什么叫侧面指纹识别_侧面指纹识别方案还有哪些问题没有解决?

    什么叫侧面指纹识别_侧面指纹识别方案还有哪些问题没有解决?当我们回首手机圈不难发现两个关键词——金属机身以及指纹识别。虽然指纹识别功能并不是直到今年才出现在智能手机之上,在这一年中,各大手机厂商先是采用了与iPhone相同的正面指纹识别方案,然而没过多久便有厂商提出,指纹识别功能放在机身背面更好用(成本低才是真相);一时间,关于“内裤到底该正着穿,还是反着穿?”的争论,成为各大手机发布会必谈的话题之一。直到侧面指纹识别方案的出现,广大的手机用户才发现,原…

    2022年8月10日
    6
  • 【Spring基础】CGLIB动态代理实现原理[通俗易懂]

    【Spring基础】CGLIB动态代理实现原理[通俗易懂]前言Github:https://github.com/yihonglei/thinking-in-spring一CGLIB介绍CGLIB(CodeGenerationLibrary)是一个开源项目!是一个强大的,高性能,高质量的Code生成类库,它可以在运行期扩展Java类与实现Java接口。Hibernate用它来实现PO(PersistentObject持久化对象)…

    2022年6月12日
    39
  • 树莓派4b基础入门「建议收藏」

    树莓派4b基础入门「建议收藏」目录一、树莓派百科知识二、树莓派4B图解及配件选择三、如何烧录系统?四、树莓派开机连接五、常见警示标志和故障排除六、格式化TF卡七、系统备份与恢复八、无线WiFi上网配置九、系统汉化教程十、键盘布局设置十一、树莓派扩展分区十二、开启SSH的4种方法十三、开启VNC的3种方法十四、Windows远程桌面连接十五、获取IP和MAC地址十六、设置静态IP十七、常见问题一、树莓派百科知识树莓派(RaspberryPi)是一款基于ARM的微型电脑主板,旨为学生计算机编程教育而设计,其系统基于Linux,由注册于

    2022年6月11日
    123

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号