CPU就像一个单细胞一样,本身不具备任何思考能力,没什么自己的想法,你给它一个刺激,它只是简单的会有一个反应。

准确的来说, CPU不认识也不理解任何东西。

CPU就像一个单细胞一样,本身不具备任何思考能力,没什么自己的想法,你给它一个刺激,它只是简单的会有一个反应。

那这个刺激是什么呢?是电压,硬件感知到的仅仅就是电压。

电压有两种,高电压和低电压。

你马上就能反应过来,这就是01二进制,高电压代表1低电压代表0,0和1仅仅是人类可以理解的东西,硬件电路可不理解这玩意,它仅仅就是靠电流驱动来工作。

让我们来看看这个简单的电路,这个就是与门:

你能说这个电路理解它自己该做什么吗?它有自我意识吗?当然没有。

所以说这个问题的答案非常简单:

CPU根本就不能理解任何东西,之所以CPU能正常工作,仅仅是因为你(制作CPU的人)让它这么工作。

这个问题就好比你问一辆自行车是如何理解自己怎么跑起来的?还不是因为你设计了车轮、车链然后用脚一蹬跑起来的。

你希望两个开关都打开灯才亮,因此你这样设计电路,这就是与门;你希望任意一个开关打开灯就亮,因此你那样设计电路,这就是或门;你希望关闭开关灯才亮,这就是非门,有了与或非你可以搭建出任意复杂的逻辑电路,比如下面这个能执行加操作的加法器。

看看这个电路,你能说它知道自己是在执行加法操作吗,这当然是人类认为这个电路的输出等价于加法操作的结果。

尽管这个电路看上去很不错,给定两个输入得到的输出和我们人类认为的加法是一样一样的,但这有点简单。

除了加法是不是还应该有其它操作,如果有多种类型的操作那么就必须告诉电路该操作的类型是什么(操作码),操作的数字是什么(操作数)。

这样给它一个输入就能按照我们的想法来控制电路了,BOOM!!!宇宙大爆炸!

哦不对,CPU诞生了!

人类编写的代码必须首先转为01二进制,之后才能驱动CPU工作。

当然,怎么把一坨代码高效等价的转为1001011100。。。这项工作可不简单,人类探索了几十年,一干人等还获得了图灵奖,可见这个问题的重要程度以及难度。

你今天能简单点一下build按钮或简单运行一个命令就能把你写的代码转为01串,要知道这简单的背后是靠无数天才榨干天量的脑细胞才实现的。

从这里应该应该能看出来,CPU根本不认识任何语言,理解编程语言的其实是编译器。

现在我们能给CPU输入了,那输出呢?

剩下的仅仅就是解释了,比如给你一个01串,01001101,你可以认为这是一个数字,也可以认为这是一个字符,也可以是表示RGB颜色,一切都看你怎么解释,这就是软件的工作了。

最终的目的只有一个: 让人类能看懂。

整个流程就是这样的:

计算机真是一个非常神奇的机器,如此简单,却又能完成复杂无比的工作。

现在你应该明白了吧,计算机所谓能理解二进制就好比你的台灯能理解开关一样。

它们真的对此一无所知。

CPU 是如何理解 01 二进制的?相关推荐

  1. 714-CPU 是如何理解 01 二进制的?

    CPU 是如何理解 01 二进制的? 准确的来说,CPU不认识也不理解任何东西. CPU就像一个单细胞一样,本身不具备任何思考能力,没什么自己的想法,你给它一个刺激,它只是简单的会有一个反应. 那这个 ...

  2. 字长是计算机一次能处理的什么数据的位数,CPU一次能处理二进制数据的位数

    正确答案: A CPU一次能处理二进制数据的位数 题目:字长是CPU的主要性能指标之一,它表示( ). 解析:解析:字长是指计算机运算部件一次能同时处理的二进制数据的位数.字长越长,作为存储数据,则计 ...

  3. RT-Thread 的 CPU 固件移植理解

    RT-Thread 的 CPU 固件移植理解 博主介绍 RT-Thread 的 CPU 抽象层 STM32CubeMX 固件工具 RT-Thread 的 BSP

  4. linux cpu load 值,理解Linux系统中的load average(图文版)转

    一.什么是load average? linux系统中的Load对当前CPU工作量的度量 (WikiPedia: the system load is a measure of the amount ...

  5. 论文浅尝 | 基于知识库的自然语言理解 01#

    本文转载自公众号:知识工场. 罗康琦,上海交通大学计算机系2019届博士,研究方向为自然语义理解和知识图谱.2012年获得华中科技大学软件工程学士学位,现就职于京东数据科学实验室(Data Scien ...

  6. 多核cpu与多线程理解

    计算机cpu与多线程 进程和线程: 进程包含线程,一个进程中包含多个线程. 线程是cpu调度和分配的基本单位,进程是操作系统进行资源分配(cpu,内存,硬盘io等)的最小单位. 单核cpu: 实现多进 ...

  7. Linux CPU 100%问题 | 理解 CPU负载和 CPU使用率

    CPU 负载和 CPU 使用率 这两个从一定程度上都可以反映一台机器的繁忙程度. CPU 使用率反映的是当前 CPU 的繁忙程度,忽高忽低的原因在于占用 CPU 处理时间的进程可能处于 IO 等待状态 ...

  8. cpu架构----通俗理解

    说法一 CPU历来都是一个高大上的话题,普通吃瓜群众除了CPU越贵越好之外,可能就一无所知了.曾经小编对于CPU也是一头雾水,后来请教了很多大神,又查阅了很多资料,才粗略地搞明白了一点.在此,小编就按 ...

  9. 通过自制CPU来彻底理解CPU的工作原理

    每天摸着CPU,摸了20多年,却总是无法彻底理解CPU的工作原理,还有比这更郁闷的事吗?所以我决定攻克这一世界(我个人的世界)难题,自己做一个CPU来理解CPU的工作原理. " 造一个什么样 ...

最新文章

  1. 太阳能板如何串联_还在犹豫用不用太阳能灯?这些分析让你少花钱,更省钱。...
  2. 谷歌应用引擎新增PHP支持
  3. getlab如何编辑提交时显示的用户名_GitHub 如何让你的提交显示被校验
  4. 五行中的土在哪个方位_土命人适合往哪个方向发展
  5. ES6_类_note
  6. macbook python安装_mac下安装Python3.*(最新版本)
  7. Centos8 安装Tomcat
  8. 计算机二级access宝典app,二级Access考试宝典
  9. 关于华为pad(鸿蒙系统)连接wedo 2.0 集线器问题
  10. 盛大进军语音识别领域:将开源哼唱搜索技术
  11. Laravel 博客开发|Laravel 项目中安装和使用 Bulma
  12. 西游记中荆棘岭五个树精
  13. java语言学术报告厅,文理学院举办java编程语言公开课
  14. [转]看恐怖片能减肥
  15. SIGGRAPH 2022最佳技术论文奖重磅出炉!北大陈宝权团队获荣誉提名
  16. 查询出学生表中年龄和分数相同的所有同学的名字
  17. 有哪些支持C4D的渲染农场
  18. lwip的tcp断线重连例程_STM32F107+LWIP---如何检查tcp通讯断开?并重新连接
  19. Trojan一键脚本
  20. Java中的抽象方法是什么,怎么用?

热门文章

  1. 数据结构之python实现顺序表
  2. spring boot初学习的数据库依赖
  3. 自动驾驶规划方法综述
  4. 基于OpenCV Haar实战级联分类器的使用
  5. 链表问题12——将单链表的每K个节点之间逆序(方法二)
  6. Fundebug计费标准解释:事件数是如何定义的?
  7. SQL Server 文件和文件组
  8. hadoop集群运维碰到的问题汇总
  9. SQLite第三课 源码编译错误以及解决
  10. 美国互联网瘫痪了,你的密码怎么办?