zoukankan      html  css  js  c++  java
  • 补码的理解

    计算机中可以同时有加法器和减法器,但是为了简化逻辑算术单元设计,计算机里只需要加法器,可以不需要减法器。为什么?

    因为加法和减法运算都可以通过加法器运算。那减法运算如何通过加法器计算呢?

    1、模的概念:

    在日常生活中,将某物体顺时针旋转270度和逆时针旋转90度能达到同样的效果,把时钟里的分钟顺时针调整40分钟和逆时针调整20分钟,分针最后的位置是一样的。这时270是90的补数,90也是270的补数;40和20也同理。这里提到角度270+90=360,360就是模;60分钟:40+20=60,60就是模。

    在二进制数中,当位数为n时,模为

    2、补码定义:

    非负数的补码是其原码本身;

    负数的补码是其绝对值的原码最高位符号位不变,其它位取反,再加1。(为什么补码定义是这样的?下面有解释!)

    负数的补码定义为什么是上面的定义呢?

    举例子:

    求7-3转化为求7+(13-16)

    7+(13-16)是什么意思呢?按照补码定义发现13是-3的补码,-16是加法器在计算7+13时候得到10100后去掉最高位1得到0100,为什么要去掉最高位16呢?因为上面模的定义:二进制数n=4,只看低4位二进制数!

    总结规律发现,模是固定的16(n=4,模为16),13就是-3的绝对值原码取反加1,推而广之也是正确的,就有了负数的补码的定义(如此定义原因可能也是便于记忆求解)!

    参考:https://blog.csdn.net/qq_33391629/article/details/79738814

  • 相关阅读:
    Springboot单元测试(MockBean||SpyBean)
    使用 Mockito 单元测试 – 教程
    spring结合mockito
    Spatis service单元测试: 使用mock mapper的方式
    单元测试Mockito中的Mock和Spy
    强大的Mockito测试框架
    Mockito单测,mock service层的mapper
    Mockito教程
    SetupFactory 制作安装包
    fiddler的一些记录
  • 原文地址:https://www.cnblogs.com/thebreakofdawn/p/9564285.html
Copyright © 2011-2022 走看看