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