在计算机底层运算设计的过程中,是根据现实生活中的数学运算做出的映射。比如数学中的8-3=8+(-3),那么这样一来减法运算就变成了加法运算(你这时可能会问,我脑子直接计算8-3=5了,何必再转换位成加法运算多此一举,只能说你日常形成习惯了吧!因为对8-3做分解就只有8和-3这两部分,所以在数学中就是8和-3做相加),因此计算机底层设计模拟数学就需要负数,这个负数就可以使用反码进行充当–》本质上是为了将减法运算转换为加法运算。补码是为了解决数字“0”在计算机中非唯一编码的问题。为什么会这样,往下看!

Computer_Base__Binary_List:

  • 1.为什么计算机内部只有加法器?
  • 2.计算机为什么会需要原码、反码、补码?
  • 3.如何理解二进制计算高位溢出?

1.为什么计算机内部只有加法器?

我们都知道计算机芯片内部有个核心部件-晶体管,但你知道它的作用吗?作用很多,此处列举一个与本文相关的。

通过三极管的拼接可以完成逻辑的运算,制造出了与非门。(至于为什么本文不做探讨)
(1)与门:两个输入端和一个输出端,当输入端都为高电平(1)时,才能输出高电平(“&”)
(2)非门:一个输入端和一个输出端,当输入端为高电平(1)时,输出端为低电平,“非”也就是相反的意思。(“!”)
(3)或门:两个输入端和一个输出端,当某一个输入端为高电平(1),那么输出端就为高电平。(“|”)

最终通过与门、非门、或门的有机结合创造出了加法器。有了加法器还要解决减法器的问题,这个减法器的设计更为困难(比如加法器可以使用“与”来完成进位),所以为了硬件电路变得简单,我们可以通过加法器实现减法器的功能。这就涉及到了补码

2.计算机为什么会需要原码、反码、补码?

二进制第一位一般会表示成符号位,0正,1负二进制第一位一般会表示成符号位,0正,1负二进制第一位一般会表示成符号位,0正,1负

深入理解计算机底层为什么采用补码运算【如何理解二进制计算高位溢出】相关推荐

  1. 计算机中采用补码运算的目的

    补码运算能将减法化为加法来完成,从而 使运算器中不需配置减法电路,节省了硬件电路,简化了计算机或者运算器的设计 在计算机系统中,数值一律用补码来表示和存储.原因在于,使用补码, 可以将符号位和数值域统 ...

  2. 计算机组成用变形补码运算,计算机组成原理补码加减法运算

    计算机组成原理补码加减法运算 (37页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 补码加减法运算 2019年7月9日计算机组成原理 1 ...

  3. 为什么计算机当中要采用补码

    为什么用补码: (1) 为什么计算机中要使用补码? 在计算机的8位二进制表示法中,有原码.反码.补码三种方法.最高位均表示符号位,0+1-. 1.原码 正数 0 XXXXXXX 负数 1 XXXXXX ...

  4. 为什么通用计算机多采用补码,为什么计算机用补码存储数据?

    在计算机内部,所有信息都是用二进制数串的形式表示的.整数通常都有正负之分,计算机中的整数分为无符号的和带符号的.无符号的整数用来表示0和正整数,带符号的证书可以表示所有的整数.由于计算机中符号和数字一 ...

  5. 原码、反码、补码,带你深入理解计算机的补码运算原理(附图片解说过程),为什么计算机中数据要以补码的形式存储呢?解释补码运算规则的合理性。

    一.为什么计算机中的数据以补码的形式存储? 计算机更擅长加法运算,减法运算是在计算机处理器的加法器的基础上而实现的,既然计算机更擅长加法运算,那么计算机的设计者当然就只能在加法器的基础上引入" ...

  6. 计算机采用补码存储数据吗,为什么计算机用补码存储数据?

    来自公众号:漫话编程 关于作者:漫话编程,是一个通过漫画+音频的形式讲解枯燥的编程知识的公众号.致力于让编程变得更有乐趣. img img img img img img img 我们知道,计算机只认 ...

  7. 为什么计算机用补码运算

    计算机为什么用补码运算 使用补码,可以将符号位和数值域统一处理,从而简化运算规则.简化运算器的结构,提高运算速度: 使减法运算转换为加法运算,进一步简化计算机中运算器的电路设计 两个用补码表示的数相加 ...

  8. 计算机组成原理整数乘法,计算机组成原理 - 定点整数的原码补码运算(待验证)...

    计算机组成原理 - 定点整数的原码补码运算(待验证) 目录 〇.环境 对象 运算 定点整数原码.定点整数补码 移位.加.减.乘.除 原码定义: \(x=\begin{cases} x &0\l ...

  9. [转]从根上理解高性能、高并发:深入计算机底层,理解线程与线程池

    系列 <从根上理解高性能.高并发(一):深入计算机底层,理解线程与线程池> <从根上理解高性能.高并发(二):深入操作系统,理解I/O与零拷贝技术> <从根上理解高性能. ...

最新文章

  1. let const 命令
  2. C语言每日一题之No.9
  3. 如何系统学习机器学习?
  4. Linux Shell脚本编程 --split命令
  5. C# 3.0 New Language Features (Part 2)
  6. Flutter进阶—质感设计之弹出菜单
  7. 02 - 体系结构概述
  8. 群体智能之粒子群优化(PSO)
  9. 树莓派简单摄像头录像并保存视频文件
  10. C++——EOF是个什么东西?
  11. 抖音实战~搜索页面~扫描二维码
  12. 再谈计算机编程的学习
  13. 计算机数字怎么转换成文本,怎么把数字转换成文本
  14. 用Python制作一条五彩蟒蛇
  15. Mybatis常见面试问题(附答案)
  16. 加工奶制品的生产计划 lingo代码
  17. 什么是cache?为什么需要cache?cache存在的合理性
  18. 密码学之数字信封 Digital_Envelope(project完整代码)
  19. 京东与阿里要用区块链打击假货 造假将无可遁形
  20. 工作10年,30+转行软件测试,月薪10.5K

热门文章

  1. java枚举的例子_Java枚举例子
  2. mysql 字符串解析_MySQL 动态字符串处理详解
  3. 【数据结构与算法】二叉树遍历
  4. python序列类型唯一的映射类型_python2.x学习笔记(8)-映射和集合类型
  5. CSS设置文本字体居中
  6. linux e盘路径,Linux添加路径到PATH环境变量
  7. 复合火焰探测传感器_火灾探测器分类
  8. layui 给table里面的添加图标_layui中的table中toolbar自定义过程
  9. kotlin将对象转换为map_在 Kotlin 的 data class 中使用 MapStruct
  10. tensorflow打印模型图_[深度学习]TensorRT加速tensorflow实例