当前位置 : 主页 > 编程语言 > java >

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

来源:互联网 收集:自由互联 发布时间:2022-07-13
在计算机底层运算设计的过程中,是根据现实生活中的数学运算做出的映射。比如数学中的8-3=8+(-3),那么这样一来减法运算就变成了加法运算(你这时可能会问,我脑子直接计算8-3=5了


在计算机底层运算设计的过程中,是根据现实生活中的数学运算做出的映射。比如数学中的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.计算机为什么会需要原码、反码、补码?

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

网友评论