计算机内部 1 + 1 = 2 的实现

迷惑
1 + 1 = 2 是小学生都知道的公理,这很好理解,也不需过于复杂化。但一个问题须要深刻探究:计算机是如何实现 1 + 1 = 2 的。ide

从二进制开始提及
计算机,更准确来讲是 CPU, 它天生是不可能知道 1+1=2 这种计算逻辑的,必定是人为赋予的。设计

人是怎么告诉 CPU 这种事的呢?准确来讲,这是CPU设计只出就定死的。3d

首先考虑CPU内部的实现,你们或许都有一个意识:“计算机只认识0和1”,准确来说,这里的0和1并非单纯整数意义上的数字0和数字1, 而是指两种状态. 思考一个灯泡,它只能存在两种状态,没开/开着,这是两种状态。一样,在CPU内部的电路中,也只有两种状态(固然还存在高阻态,但这并非重点),这两种状态分别为A态(通,高压态)、B态(断,低压态),分别用1/0两个数字标表示,所以,更准确的表达是“计算机只认识0和1两种状态“。blog

两种状态能够由二进制表示,二进制与经常使用的十进制相似,最大的不一样点是逢二进一,例如十进制2的二进制为10,数字7的二进制是111. 这种表示简单且高效,在计算机内部,全部的数据都是二进制存储的,不只数值,字符也是如此。固然,不一样于数值之间的转换,并不存在单纯的字符与二进制之间的转换关系,这须要人为的定义,世界上通用的字符的二进制表示是ASCII码,例如字母'A', 其二进制被强制定义为01000001.图片

有了二进制的概念,对于问题:“计算机是如何实现 1 + 1 = 2”,也就迈出了一大步。首选能够明确,在计算机内部数字'1','2' 被分别表示为 '01','10'.it

逻辑电路
如今要解决的问题的是:计算机如何处理运算。 因为计算机内部由二进制表示,问题由回到二进制上,最早要解决的问题是二进制是如何进行四则运算的? 考虑一位二进制数字,有如下规则:0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1, 1 + 1 = 0进1(即10)。咱们要实现一种知足以上规则的电路。 串并联等基础概念再也不赘述,这里首先介绍几种基本逻辑电路:class

或门:并联电路实现; 记为'OR', 其运算逻辑为:0 OR 0 = 0, 0 OR 1 = 1, 1 OR 0 = 1, 1 OR 1 = 1.
计算机内部 1 + 1 = 2 的实现
与门:串联电路实现; 记为'AND', 其运算逻辑为:0 AND 0 = 0, 0 AND 1 = 0, 1 AND 0 = 0, 1 AND 1 = 1.
计算机内部 1 + 1 = 2 的实现
非门:一般采用CMOS逻辑和TTL逻辑,也能够经过NMOS逻辑、PMOS逻辑等来实现。记为'NOT', 其运算逻辑为:NOT 0 = 1, NOT 1 = 0.
计算机内部 1 + 1 = 2 的实现
与非门:一个与门与一个非门实现。
计算机内部 1 + 1 = 2 的实现
异或门:用一个与非门、一个与门和一个或门实现。记为'XOR', 其运算逻辑为:0 XOR 0 = 0, 0 XOR 1 = 1, 1 XOR 0 = 1, 1 XOR 1 = 0.图片
计算机内部 1 + 1 = 2 的实现
计算机内部 1 + 1 = 2 的实现
有了以上逻辑电路的概念,1 + 1 = 2( 二进制下1 + 1 = 0进1)实现便十分简单,利用上述介绍的二进制加法与逻辑电路的运算逻辑,咱们能够分红两部分完成:和输出;进位输出。 和输出能够采起异或门, 1 XOR 1 = 0. 扩展:异或门又称为半加器,它只能实现和输出但没法输出进位。 进位输出能够采起与门, 1 AND 1 = 1. 扩展:异或门加上一个与门组成全加器。基础

计算机内部 1 + 1 = 2 的实现
a,b 为输入端, c为进位输出,s为和输出。扩展

相关文章
相关标签/搜索