• 二进制减法的实现


    减法的基本运算过程:

    在求253-176的过程中,个位由于3小于6,需要从十位借一位,之后用13-6得到7,十位4-7,需要从百位借位,14-7得到7,最后的结果为77

     

    避免借位的减法:

    如果我们用十进制中的最大数来减,这样就可以不用借位了,上一步的求解过程就可以分解为如下:

    253+(999-176)-999

    1076-999

    这时,发现还是需要借位,那如果能够减去十进制中的最小数,就不需要借位了

    253+(999-176)+1-999-1

    即为253+(999-176)+1-1000=1077-1000

     

    值为负数的减法:

    176-253,可以翻转之后值取反,为了统一,我们还是按照上面的思路来

    176+(999-253)-999

    922-999

    如果按照上面来走,即为922-999+1就不对了,通过观察,我们发现999-922刚好不用借位,只需要值求反即可

     

    二进制的减法:

    11111101-10110000

    同理,我们求减数的1的补码(十进制中,用9减去,即为9的补码),减数的1的补码为11111111-10110000位01001111,可以看到,二进制的补码即为1变0,0变1

    因此,二进制的补码也可以叫做反码

    之后,我们被减数+反码,即11111101+01001111=101001100

    之后,结果加1,在减去(11111111+1),(101001100+1)-100000000=01001101

    总过程如下:11111101+(11111111-10110000)+1-(11111111+1)

    八位二进制减法:

    本例只适用于值为正数的结果

    如果被减数大于减数,那么结果肯定大于0,如果在加一个全为1的八位二进制后,必然会多出一个第九位,而刚好我们最后要减去一个第九位为1的其他全为0的二进制

    这样,我们只需要舍弃第九位即可,因为我们是八进制计算器,因此第九位溢出被去掉,结果刚好为减法的结果

    因此,八位二进制减法简化为如下步骤:

    1.减数取反

    2.被减数+减数的反码

    3.结果再加1

     

     

     

      

  • 相关阅读:
    关闭windows10更新
    ude5.00修改字体大小方法
    hightec的eclipse运行错误解决
    Tek DPO2024B示波器和电流探头A622的使用
    vue项目中使用mockjs+axios模拟后台数据返回
    vue-tree 组织架构图/树形图自动生成(含添加、删除、修改)
    vue html页面打印功能vue-print
    项目中遇到的bug、问题总结
    在Vue项目中使用html2canvas生成页面截图并上传
    element-ui 使用span-method表格合并后hover样式的处理
  • 原文地址:https://www.cnblogs.com/monkey6/p/10488755.html
Copyright © 2020-2023  润新知