欢迎点击「算法与编程之美」↑关注我们!

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

欢迎加入团队圈子!与作者面对面!直接点击!

对于加法来说,计算机很容易实现,加法是始终从两个加数的最右列向最左列进行计算的,每一列的的进位加到下一列中。而在减法中没有进位,只有借位,它与加法存在本质的区别。

例如,可以先看一道例题:

要解决这个问题,首先从最右列入手,可以看见,6是大于3的,所以要从5上借1,再用13减去6得到7。由于5已经被借走1,所以实际上是4了,继续向2借1,得到7,以此类推,我们可以得到结果为77。

可以通过一些小技巧来让减法不涉及借位。为了避免借位,首先要从999中减去减数,而不是从原本的被减数中减去减数。

由于操作数是三位数,所以这里使用了999。从一串9中减去一个数叫做对9求补数,176对9的补数是823.计算出补数后,将补数与原来的被减数相加就可以得到1076,最后再将结果加上1,并减去1000。这样就得到了结果77,而且没有使用到借位。原理是这样的:

等价于

然后将数字重新组合

那么将这种方法应用于二进制,就变为了:

第一步,用11111111(255)减去减数:

第二步,将补数与减数相加:

第三步,将结果加1,再减去100000000就得到1001101,就等于十进制数的77。

其实可以发现,上述的补数,就是把减数按位把0换成1,把1换成0。然后把补数和减数相加得到的结果再减去100000000,实际上在电脑中没有进行这一步,它是直接把最高位舍弃了。就好比一个24小时的时钟,现在是23点,再加上三个小时就是26,但是时钟最高位只有24,接着就是1点了,所以当超过24过后就溢出,得到了2点。在计算机中如此。当只有8位的时候,最后补数与减数相加得到了9位,就溢出最高位,就得到了正确结果。

END

主  编   |   王文星

责  编   |   刘玉江

 where2go 团队


   

微信号:算法与编程之美

长按识别二维码关注我们!

温馨提示:点击页面右下角“写留言”发表评论,期待您的参与!期待您的转发!

谈一谈|计算机是如何做减法的相关推荐

  1. 计算机是如何做减法的?

    算机只会加法,不会减法,乘法,除法等等等等.首先,在生活中,自然数是没有限制的,从1到无数,你想说多少就说多少.但是在计算机里,数字不能是无限大,因为保存数字需要空间,就好比在一张纸上,可以写出的数字 ...

  2. 小公司请多做减法,少谈管理

    导读: 小公司跟大公司比,优势就是快.管理对小公司太奢侈了,中大型公司才搞管理. 所以,小公司的团队一定要找能自我驱动的人才. 通常来说,领导人做事有两种风格. 一种是做加法.它是一种麻痹.很多领导人 ...

  3. 高职院校计算机基础课程要求,浅谈高职院校计算机的应用基础课程的改革.doc...

    浅谈高职院校计算机的应用基础课程的改革 浅谈高职院校计算机的应用基础课程的改革 摘要:本文就改革计算机基础教学进行了初步探讨,提出了教学分班.项目教学等改革方案,着重培养学生的思维.操作能力. 关键词 ...

  4. 程序员谈如何掌握计算机专业英语

    干程序员是一项很辛苦的工作,要成为一个高水平的程序员尤为艰难.这是因为计算机软件技术更新的速度越来越快,而这些技术大多来源于英语国家,我们在引进这些技术时往往受到语言障碍的制约,严重影响到对新技术的理 ...

  5. 谈一谈我对本科计算机专业的认识

    新的一年开始了,我大学的所有课程也刚刚结束不久,想一写篇文章谈一谈我对计算机专业的认识.博主学的专业是"计算机科学与技术",今年大四,三年半的校园生活使我对计算机专业的认知一次又一 ...

  6. 浅谈计算机教学的现状分析,浅谈中职计算机专业教学的现状与对策

    好文网为大家准备了关于浅谈中职计算机专业教学的现状与对策的文章,好文网里面收集了五十多篇关于好浅谈中职计算机专业教学的现状与对策好文,希望可以帮助大家.更多关于浅谈中职计算机专业教学的现状与对策内容请 ...

  7. 美国计算机教育方向相关的论文题目,浅谈美国大学计算机教育论文

    浅谈美国大学计算机教育论文 1教育理念 美国大学的计算机教育鼓励学生靠大量阅读.多做实验而不是靠死记硬背来积累知识.由于人类的记忆.精力和喜好都具有局限性,美国大学的计算机教育是把广博的知识教给学生, ...

  8. 中职计算机教学方法,浅谈中职计算机学科的教学方法:英语课教学方法有哪些...

    [摘要] 计算机学科中有些教学内容比较抽象,不容易被学生接受和理解,作为老师应有能力化繁为简,将深奥的理论讲得通俗易懂,这需要老师多钻研教材教法.笔者对计算机教学中使用过的教学方法进行了归纳.总结,并 ...

  9. 计算机考研跨设计,浅谈2012年计算机跨考视觉转达设计考研经历

    浅谈2012年计算机跨考视觉转达设计考研经历 2012年考研基本尘埃落定,回想这一路走来其实过得还挺快的,准备了一年的时间总算是有个比较好的结果.准 作者 娇儿kf 次阅读 2012-06-27 20 ...

最新文章

  1. Python基础教程:列表的四种常用方法
  2. 复杂系统是如何挂掉的
  3. 【安全漏洞】从补丁追溯漏洞触发路径
  4. 首届.NET Core开源峰会
  5. 计算机excel行高在哪里,如何在Excel2016中设置改行高和列宽?
  6. 计算机网络概述(一)
  7. 海龟绘图两小时上手C语言 - 3 正方形螺旋线
  8. JavaScript数组的高级用法-reduce和reduceRight详解
  9. Beta版本测试第二天
  10. shell脚本编程之循环控制语句(continue/break/sleep)
  11. 游戏音效素材大全下载 - 3000首高清无损-按分类整理
  12. 左程云算法课基础06图课程笔记
  13. 超参数(Hyperparameter)
  14. 大数据的七大核心具体价值
  15. SAP ADM100 学习笔记
  16. 2021年黑龙江企业享受税收优惠政策,财政扶持高达90%
  17. 过年不再被逼相亲——我用python给亲戚展示2022的相亲数据
  18. 既然心里活着的还是那个年轻人,我们申请跟未来的“小程序员”们一起过个节...
  19. P2P TELNET
  20. Python PEP

热门文章

  1. docker中使用Python镜像
  2. python常用镜像地址大全
  3. 【目标检测系列】yolov3之损失函数以及边框回归pytorch源码注释以及理论理解
  4. 优秀课件笔记english-writing专业英语写作5
  5. springBoot关于前言中不允许有内容的踩坑笔记
  6. nullcnv() mysql_sql rpad
  7. 那你知道deepmind的Flamingo吗
  8. 判断密码是数字、小写字母、大写字母、特殊字符任意三个的正则表达式
  9. AUR的包出现签名是未知信任的
  10. 小白的数字电路逻辑设计笔记(一)----绪论