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

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

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

模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 

简记:同为0,异为1


模2除法:

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

  1. X除以P(对X和P做模2加减法),当前X首位为1时,商1,为0时商0
  2. 所得余数R去除首位(即左移一位):
  3. 重复第2步直到R位数少于P位数

例:对除数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要忽略掉,不参与下一轮,因为最上面的被除数后面 //没有数可以给这里往后补一位了)少于除数位数,不能继续除了 
得到最终结果: 商1011111
今天的文章 模2除法(CRC校验码计算)分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2024-12-17 10:33
下一篇 2024-12-17 10:30

相关推荐

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