模2运算的原理(转)

模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,按照模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

数字电路模2运算原理,及模2的加减乘除详解相关推荐

  1. Python 取模运算(取余)%误区及详解

    Python 取模运算(取余)%误区及详解 首先,必须要先明确一个概念(针对新手),不要用数学求余数角度来思考模运算,python.Java等各种语言都有其不同的运行机制. python的模运算计算规 ...

  2. OSI 七层模型和TCP/IP模型及对应协议(详解)

    OSI 七层模型和TCP/IP模型及对应协议(详解) 查看全文 http://www.taodudu.cc/news/show-6185847.html 相关文章: OSI7层网络模型协议精析 OSI ...

  3. [Python从零到壹] 四十五.图像增强及运算篇之图像灰度非线性变换详解

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  4. Clickhouse的数据存储原理、二进制文件内容分析与索引详解

    Clickhouse的数据存储原理.二进制文件内容分析与索引详解 Clickhouse以其强大的性能著称,已经被越来越多的使用在OLAP分析查询等场景中.Clickhouse是一个列式存储的数据库,而 ...

  5. java voliate,voliate 的实现原理是什么【面试题详解】

    今天爱分享给大家带来voliate 的实现原理是什么[面试题详解],希望能够帮助到大家. volatile可以保证线程可见性且禁止指令重排序,但是无法保证原子性.在JVM底层volatile是采用&q ...

  6. SAGAN原理及代码(B站详解,很值得一看)

    代码地址:https://github.com/heykeetae/Self-Attention-GAN 视频讲解:SAGAN原理及代码_哔哩哔哩_bilibili 目录 1.背景+整体介绍 2.算法 ...

  7. 深入理解mybatis原理, Mybatis初始化SqlSessionFactory机制详解(转)

    文章转自http://blog.csdn.net/l454822901/article/details/51829785 对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外.本章 ...

  8. RPC框架的实现原理,及RPC架构组件详解

    RPC的由来 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 单一应用架构 当网站流量很小时, ...

  9. Java多线程系列(七):并发容器的原理,7大并发容器详解、及使用场景

    之前谈过高并发编程系列: 高并发编程系列:4种常用Java线程锁的特点,性能比较.使用场景 高并发编程系列:CountDownLatch.Semaphore等4大并发工具类详解 高并发编程系列:4大J ...

最新文章

  1. BERT中的词向量指南
  2. 前端开发我为什么选择cordova
  3. mybaits二十八:逆向工程
  4. dedecms系统列表页调用tag标签同时带上链接的方法
  5. Dataset之iGAN:iGAN数据集的简介、安装、使用方法之详细攻略
  6. DataTables鼠标停留高亮行并且鼠标点击二倍高亮行
  7. Halcon - 定位 - 卡尺
  8. 建模分析师与算法工程师的主要区别
  9. 【摘】把vmware的虚拟机硬盘vmdk文件分割成多个2G文件
  10. AndroidStudio debug
  11. TOOLFK工具-在线二维码解码工具
  12. Gerry-自定义报表组件
  13. Excel 文字转拼音
  14. 【05月22日】预分红股息率最高排名
  15. 联想台式电脑一键恢复后桌面没有计算机了,联想笔记本一键恢复功能使用教程...
  16. WEBSHELL姿势之SQL一句话
  17. 某些软件中,输入法无法输入中文
  18. 30分钟讲清楚深度神经网络
  19. python 求解高阶线性方程并画出图像
  20. 2022年全球与中国LED嵌入式照明行业发展趋势及投资战略分析报告

热门文章

  1. RabbitMQ学习笔记和AMQP协议浅析
  2. 码农干货系列【10】--光线追踪进阶:javascript玩转3D纹理映射
  3. openstack 自己制作云桌面linux瘦客户机
  4. html好看的预约界面设计,35个漂亮的网页弹框设计
  5. 字节跳动一面通过率_字节跳动面试(一面)总结
  6. 2021届 大疆一面 嵌入式软件
  7. js 页面跳转 控制锚点的方法汇总
  8. java redis 注解_Spring集成Redis使用注解
  9. 去除Neg窗口(警告窗口)
  10. 如何养成良好的生活习惯