逻辑门--计算之始!

[toc]python

逻辑门:

--------- " 抽象 " 之旅:

二进制:

不用管底层细节,把精力用来构建更复杂的系统:

  计算机最先是机电设备 , 通常用十进制计数 

  好比用齿轮数来表明十进制 --》 再到晶体管计算机
    
  二进制: 用 开/关 两种状态也能够表明信息
	      意思是"用两种状态表示

  二进制也能够写成 1 和 0 而不是 true 和 false(不一样的表达方式)

    表示 true  : 电路闭合,电流流过,表明 "真"
    表示 false : 电路断开,无电流流过,表明"假"

晶体管的确能够不仅是 开/关,还可让不一样大小的电流经过

早期电子计算机是三进制的,有 3 种状态,甚至五进制,5 种状态

--》 问题:状态越多,越难区分信号???
	  如: 手机快没电了或者附近有电噪音,用微波炉,信号可能会混在一块儿 ....
	每秒百万次变化的晶体管会让这个问题变得更糟!

布尔代数:

思路:
--> 把两种信号尽量分开,只用"开"和"关"两种状态,能够尽量减小这类问题

计算机用二进制的另外一个缘由是: 
	有一整个数学分支存在,专门处理"真"和"假",已经解决了全部法则和运算
    										-----》"布尔代数"
        
布尔代数: 在布尔代数中,变量的值是 true 和 false,\N 能进行逻辑操做,
		 有三个基本操做:NOT, AND 和 OR

		NOT 操做把布尔值反转,
        \N把 true 进行 NOT 就会变成 false,反之亦然	
		根据 NOT 操做的输入和输出,作出这个表,而且用晶体管能够轻松实现这个逻辑	

晶体管只是电控制的开关, 有 3 根线:2 根电极和 1 根控制线:
		控制线通电时,电流就能够从一个电极流到另外一个电极(如:打开水龙头,就有水流出来,)

		能够把控制线,当作输入 ( input ), \N 底部的电极,当作输出(output)
	 即: 1 个晶体管,有一个输入和一个输出;
    	 若是咱们打开输入(input on) \N 输出也会打开(output on) \N 由于电流能够流过
		若是关闭输入(input off) \N 输出也会关闭(output off)\N 由于电流没法经过
		
        或者用布尔术语来讲\N 输入为 真,输出为 真	
		                输入为 假 \N 输出为 假     --》"真值表"

---》问题: 电路没什么意思,由于它没作什么事?,输入和输出是同样的....

电路 "NOT | AND | OR 三 门" :

思路 : 对其上稍加修改,实现 NOT
	   与其把下面那根线当作 输出,咱们能够把 输出 放到上面,
    
电路 "NOT 门":
    若是打开 输入,电流能够流过而后 "接地",输出就没有电流,因此输出是 off

    --》	若是用水来举例,就像家里的水都从一个大管子流走了,打开淋浴头一点水也没有	

    若是输入是 on,输出是 off,当输入是 off,电流无法接地,就流过了输出,因此输出是 on
    当输入是 off,电流无法接地,就流过了输出,因此输出是 on ---》 和 NOT 操做表同样

    电路 "NOT 门", \N 之因此叫 "门",是由于它能控制电流的路径

"AND 门":
	"AND"操做有 2 个输入,1 个输出:
	 若是 2 个输入都是 true,输出才是 true
        
   	 即:只打开 A,不打开 B \N 电流没法流到 output,因此输出是 false,只有 A 和 B 都打开    	 	了,output 才有电流

	
"OR 门":
	只要 2 个输入里,其中 1 个是 true,输出就是 true,
	\N若是 2 个 输入都是 true,输出也是 true
    只有 2 个输入都是 false,OR 的结果才是 false
	
   	实现 "OR 门" 除了晶体管还要额外的线 (不是串联起来。而是并联!!!)
    若是 A 和 B 都是 off,电流没法流过,输出是 off
	若是打开 A,电流能够流过。输出是 on

XOR 异或门:

NOT 门的画法是三角形前面一个圆点 : 

AND 门用 D 表示 ,OR 门用太空船表示 (形象表示)

晶体管和电线依然在那里,咱们只是用符号来表明而已:
    		用上述方法表示它们,构建更大的组件

除了前面说的三个\N 另外一个有用的布尔操做叫 "异或"  : 简称 XOR

XOR 就像普通 OR,但有一个区别:
	若是 2 个输入都是 true,XOR 输出 false
	想要 XOR 输出 true \N 一个输入必须是 true,另外一个必须是 false

XOR 门 : 
	有 2 个输入,A 和 B ,还有 1 个输出.
   	先放一个 OR 门. 由于 OR 和 XOR 的逻辑表很像,
    只有 1 个问题 - 当 A 和 B 都是 true 时 \N OR 的输出和想要的 XOR 输出不同
	----》获得 false

\N 工程师给了它一个符号,一个 OR 门 + 一个笑脸  : XOR 门图像表示

--》能够把 XOR 放入"工具箱" , 不用担忧 XOR 具体用了几个门 ,怎么用晶体管拼的,
						   或电子是怎么流过半导体的

工程师设计处理器时,不多在晶体管的层面上思考,--用更大的组件,好比逻辑门,或者由逻辑门组成的更大组件,

专业程序员 也不用考虑逻辑是怎样在物理层面实现的 从电信号开始,到如今第一次表示数据

-----》真和假 - 开始有点"计算"的感受了!!!!!

计算之始:

逻辑门 :  能够判断复杂的语句
         好比: [若是是 John Green] AND [下午 5 点后] \N OR [周末] AND [在比萨店附近]
        	   那么 "John 想要比萨" = 真,

		And with that, I'm starving, I'll see you next week.
		都说饿了,下周见
相关文章
相关标签/搜索