前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >模2除法(CRC校验码计算)_crc校验模二算法

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

作者头像
全栈程序员站长
发布2022-11-01 15:14:24
2.6K0
发布2022-11-01 15:14:24
举报
文章被收录于专栏:全栈程序员必看

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

模2加减法

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

代码语言:javascript
复制
//不需要考虑进位和借位
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

简记:同为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
整体运算
代码语言:javascript
复制
      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加减法运算):
代码语言:javascript
复制
      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时,除以除数。
代码语言:javascript
复制
      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)

第三步
代码语言:javascript
复制
      1 0 1      //商
----------------
1 0 0 0 0    //余数去除首位,作为新的被除数
1 1 0 1      //被除数首位为1,除以除数
----------------
0 1 0 1 0    //余数,模2运算后结果

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

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

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

得到最终结果: 商1011111

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月22日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 模2加减法
  • 模2除法:
  • 例:1111000对除数1101做模2除法:
    • 先说结果: 商1011余111
      • 整体运算
        • 分步分析
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档