博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模2运算的原理 模2加法,模2减法,模2乘法,模2除法
阅读量:6493 次
发布时间:2019-06-24

本文共 1221 字,大约阅读时间需要 4 分钟。

2运算是一种二进制算法,CRC校验技术中的核心部分,因此,我们在分析CRC算法之前,必须掌握模2运算的规则。与四则运算相同,模2运算也包括模2加、模2减、模2乘、模2除四种二进制运算。而且,模2运算也使用与四则运算相同的运算符,即“+”表示模2加,“-”表示模2减,“×”或“·”表示模2乘,“÷”或“/”表示模2除。与四则运算不同的是2运算不考虑进位和借位,即模2加法是不带进位的二进制加法运算,模2减法是不带借位的二进制减法运算。这样,两个二进制位相运算时,这两个位的值就能确定运算结果,不受前一次运算的影响,也不对下一次造成影响。

2加法运算定义为:
0+0=0        0+1=1        1+0=1        1+1=0
例如0101+0011=0110,列竖式计算:
   0 1 0 1
0 0 1 1
──────
   0 1 1 0

2减法运算定义为:
0-0=0        0-1=1        1-0=1        1-1=0
例如0110-0011=0101,列竖式计算:
   0 1 1 0
0 0 1 1
──────
   0 1 0 1

2乘法运算定义为:
0×0=0        0×1=0        1×0=0        1×1=1
多位二进制模2乘法类似于普通意义上的多位二进制乘法,不同之处在于后者累加中间结果(或称部分积)时采用带进位的加法,而模2乘法对中间结果的处理方式采用的是模2加法。例如1011×101=100111,列竖式计算:
       1 0 1 1
     ×  1 0 1
    ──────
       1 0 1 1
    0 0 0 0

1 0 1 1

────────
1 0 0 1 1 1

2除法运算定义为:
0÷1=0        1÷1=1
多位二进制模2除法也类似于普通意义上的多位二进制除法,但是在如何确定商的问题上两者采用不同的规则。后者按带借位的二进制减法,根据余数减除数够减与否确定商1还是商0,若够减则商1,否则商0。多位模2除法采用模2减法,不带借位的二进制减法,因此考虑余数够减除数与否是没有意义的。实际上,在CRC运算中,总能保证除数的首位为1,则模2除法运算的商是由余数首位与除数首位的模2除法运算结果确定

当余数位数与除数位数相同时,才进行异或运算,余数首位是1,商就是1,余数首位是0,商就是0。当已经除了几位后,余数位数小于除数,商0,余数往右补一位,位数仍比除数少,则继续商0,当余数位数和除数位数一样时,商1,进行异或运算,得新的余数,以此至被除数最后一位。

因为除数首位总是1,按照模2 除法运算法则,那么余数首位是1就商1,是0就商0。例如1100100÷1011=1110……110,列竖式计算:

               1 1 1 0
       ────────
1 0 1 1〕1 1 0 0 1 0 0
       1 0 1 1
      ──────
           1 1 1 1
         1 0 1 1
       ──────
             1 0 0 0
           1 0 1 1
         ──────
               0 1 1 0
            0 0 0 0
           ──────
                  1 1 0

转载地址:http://nqkyo.baihongyu.com/

你可能感兴趣的文章
API网关的iOS SDK已经支持 IPV6
查看>>
《iOS 8开发指南(第2版)》——第1章,第1.4节使用Xcode开发环境
查看>>
【云栖精选】《云栖精选阿里巴巴技术实战2016年刊》重磅发布
查看>>
Javascript:谈谈JS的全局变量跟局部变量
查看>>
短期怎么学会云计算?新手学习云计算的规划
查看>>
支配vue框架之模版语法 v-html
查看>>
英伟达发布超强大新型芯片用于人工智能
查看>>
我的友情链接
查看>>
Oracle11g Data Guard物理备用数据库搭建与配置(第1部分 主数据库实例创建)
查看>>
即时通讯框架T-io之WebSocket协议再之HelloWorld
查看>>
设计模式读书笔记-观察者模式
查看>>
浅谈java
查看>>
数据库相关概念
查看>>
gogs结合git-webhook自动部署
查看>>
Table中td的长字符串换行处理
查看>>
Objective-C中的isa、class、SEL、IMP
查看>>
head命令
查看>>
对高可用性的exchange2010的 Array配置
查看>>
操作系统中常用的进程调度算法
查看>>
puppet 使用
查看>>