当前位置: 首页 > 科技观察

CPU如何理解01二进制?

时间:2023-03-11 21:46:55 科技观察

准确的说,CPU什么都不知道,什么都不懂。CPU就像一个单细胞,没有任何思考能力,没有自己的想法。如果你给它一个刺激,它只会做出反应。这个刺激是什么?是电压,硬件感知的只是电压。有两种类型的电压,高压和低压。你马上就能明白这是01二进制,高电压代表1,低电压代表0,0和1只是人类能理解的东西,硬件电路不懂这个东西,它只是电流驱动。让我们来看看这个简单的电路,它是一个与门:你能说这个电路明白它应该做什么吗?它有自我意识吗?当然不是。所以这个问题的答案很简单:CPU根本不懂任何东西,CPU工作只是因为你(制造它们的人)让它们工作。这个问题就像问自行车怎么理解它是怎么跑的?不是因为你设计了轮子、链条,然后你就可以用脚跑了。你希望当两个开关都打开时灯亮,所以你设计这样的电路,它是一个与门;你想让灯在打开任何一个开关时打开,所以你设计了这样的电路,这是一个或门;你想让开关只有在灯亮的时候才关,这就是非门。使用AND或NOT,您可以构建任何复杂的逻辑电路,例如下面可以执行加法运算的加法器。看这个电路,你能说它知道自己在进行加法运算吗,这当然是人类认为这个电路的输出等同于加法运算的结果。虽然这个电路看起来不错,但给定两个输入,输出与我们人类认为的加法相同,但它有点简单。除了addition,还应该有其他的操作吗?如果有多种操作类型,则必须告知电路操作类型是什么(操作码)以及操作数量是多少(操作数)。这给了它一个输入来按照我们想要的方式控制电路,BOOM!!!大爆炸!哦不,CPU诞生了!人写的代码必须先转换为01二进制,才能驱动CPU工作。当然,如何高效且等价地将一堆代码转换为1001011100。。.这项工作并不容易。人类探索了几十年,又有一批人获得了图灵奖,可见这个问题的重要性和难度。今天,你只需点击构建按钮或者简单地运行一条命令,就可以将你编写的代码转换成一串01。要知道,在这种简单的背后,是无数天才榨取了大量脑细胞才实现的。从这里应该能看出来,CPU根本不懂什么语言,懂编程语言的是编译器。现在我们可以为CPU提供输入,那么输出呢?其余的只是一个解释。例如,如果给定一个字符串01,01001101,您可以将其视为数字、字符或RGB颜色。这完全取决于你如何解释它。这是软件。现在工作了最终的目的只有一个:让人类能够理解。整个过程是这样的:计算机真是一台了不起的机器,这么简单,却能做无比复杂的事情。现在你应该明白了,所谓电脑能看懂二进制就好比你的台灯能看得懂开关。他们真的什么都不知道。