计算机在体系结构上是分层的。
1,最底层是模拟电路,
模拟电路,是以电阻、电容、电感、二极管、三极管等元器件组成的电路。
它的运行符合电路原理。
初中物理上的欧姆定律,就是其中之一。
模拟电路的电压 / 电流的变化是连续的,跟数字逻辑没有直接的关系。
但是,人们可以利用三极管的导通 / 截止的状态切换,实现0或1的数字逻辑。
数字电路-非门
2,数字电路,
如上图:
1)当按键开关接到2的时候,三极管的b极电压等于电源负极电压,属于低电位0。
这时,三极管是截止的,它的c极电压约等于电源电压,属于高电位1。
2)当按键开关接到1的时候,因为那2个分压电阻的影响,三极管的b极电压> 0.7v,属于高电位1。
这时,三极管是导通的,因为上拉电阻的阻值远大于三极管的c-e之间的电阻,所以电源电压大部分加在上拉电阻上,c极电压约等于0,属于低电位0。
3)三极管的b极就是输入端,c极就是输出端。
这样在数字逻辑上,就构建了一个输入输出之间的函数关系!
f(0) = 1, f(1) = 0,
这就相当于C语言的逻辑非运算:它可以把一个二进制位取反!
按键开关和那2个触点,当然可以做成键盘上的2个按键
然后,二进制代码就可以通过这么一个简单的电路输入到数字电路系统了!
这样的二进制代码的输入形式是反码。
反码,也叫1的补码,即实际要输入的数字与数字电路内部表示它的数字之和为1。
反码的英文是1’s complement.
现代计算机用的都是2’s complement,2的补码,简称补码。
总之,人在键盘上的打字,是可以作为信息输入到数字电路的,并且可以通过数字电路的运算获得结果。
电路的底层当然是模拟电路,但是通过三极管的状态转换,它在逻辑上就是数字电路。
三极管的状态转换,当然是可以用键盘控制的。
键盘,就是一个小型的信号电路。
这样,人们就可以把自己的逻辑思维,通过键盘输入进数字电路了,这就是编程。
键盘
3,模拟电路是怎么读懂代码的?
实际的键盘很复杂,实际的电脑很复杂,实际的编程很复杂,
但是,它也是一步步的演化出来的。
就像“道德经”上说的:
“合抱之木,生于毫末。九尺高台,起于垒土。千里之行,始于足下。”
模拟电路是怎么读懂代码的?
模拟电路需要读懂代码吗?
不需要。
模拟电路只需要装的像读懂了代码一样就行了
然后,人就会认为它读懂了代码。
毕竟,人关注的是电路能不能正确的算出结果,而不是电路能不能“读懂代码”。
人是能读懂代码的。
但是人在读懂代码之前,或许也要经过跟电脑类似的运算过程:
人在这个过程之后,还要经过什么机制“觉得”自己读懂了代码,有待于进一步的研究。