裂开,有个粉丝居然问我,为什么计算机底层要使用二进制

简介: 可是今天,在实现梦想的道路上,我遇到了非常大的麻烦。因为有个粉丝问我:为什么计算机底层要使用二进制。面对这个问题,我裂开了。这不是要为难我胖虎吗?哪个搞前端的会去思考这个问题。好在作为软件工程专业的科班生,《计算机组成与原理》是一门必修课,而我刚好还依稀记得十多年前学的小知识,花费我毕生的学识,还可以勉强应对这个问题。

可是今天,在实现梦想的道路上,我遇到了非常大的麻烦。因为有个粉丝问我:为什么计算机底层要使用二进制。


面对这个问题,我裂开了。这不是要为难我胖虎吗?哪个搞前端的会去思考这个问题。

好在作为软件工程专业的科班生,《计算机组成与原理》是一门必修课,而我刚好还依稀记得十多年前学的小知识,花费我毕生的学识,还可以勉强应对这个问题。


之所以会采用二进制根本的原因是:二极管。


微信图片_20220511161215.png


二极管是用半导体材料(硅)制成的一种电子器件。它有一个非常好的特性,就是单向导电。


即给二极管阳极加上正向电压时,二极管导通。当给阳极和阴极加上反向电压时,二极管阻断。


微信图片_20220511161218.png


那么这个特性有什么意义呢?


也就是说,机器很容易通过是否通电来判断二极管的状态。对于机器而言,一个二极管可以表达两种状态:true 与 false。或者 0 与 1。


那如果我逐渐增加二极管的数量呢?


当增加到两个二极管,就可以表达 16 种状态。依次递增,逢二进一。


0 0 0 0

0 0 0 1

0 0 1 0

0 0 1 1

0 1 0 0

0 1 0 1

0 1 1 0

0 1 1 1

1 0 0 0

1 0 0 1

1 0 1 0

1 0 1 1

1 1 0 0

1 1 0 1

1 1 1 0

1 1 1 1


这里的核心是,机器可以通过电流识别到这些不同状态而做出不同的回应,而人可以识别数字,数字可以通过二极管表达给机器。于是,这样的数字就成为了机器和人交流的关键基础理论。


即使是到了现在,所有的开发语言,最终都会编译成为二进制,与机器进行沟通。当然,现在也有了三极管


当二极管增加到千千万万甚至上亿个之后,二极管集群能够表达的不同含义就越来越多,人与机器之间的沟通,就变得丰富起来。我们可以通过不同的指令表达不同的含义。

现在计算机的大脑核心:CPU 就包含了上亿个二极管。


微信图片_20220511161221.png


如果在最开始的时候,一个二极管能表达十个状态,那么就有可能直接采用十进制,当然,这种晶体管还没有出现。


实际上,这样的理论基础在中国古代早就有运用:那就是算盘。


微信图片_20220511161226.png


我们国家算盘有两种用法,一种是十进制,一种是十六进制。我们可以使用很多串珠子来表达非常大的数目。因此,如果执行速度足够快,算盘足够多,我们也可以用算盘来组装一个人工大型计算器。当然,这其中的成本就太高了。


最后还有一个非常有意思的小知识点。我们经常听说的纳米芯片,其实说的就是最小晶体管的物理尺寸。与电脑不同的是,手机给 CPU 留下的空间并不充足,因此在有限的空间内放下更多的晶体管,就需要晶体管的尺寸足够小。


而当晶体管变小之后,电阻变小,电流通电所需要的电压就更小,于是所需要的功率也大幅度减小。这是手机提高 CPU 性能的主要优化手段和努力方向。目前,全世界最先进生产工艺能量产的芯片尺寸是 7 纳米,中国的生产工艺能量产的暂时只有 14 纳米。理论上极限最小尺寸是 1 纳米。

相关文章
|
7月前
|
存储
探索计算机内部的神秘语言:二进制的魅力
二进制是一种由0和1组成的数制系统,是计算机中最基础的表示方式。通过了解二进制,我们可以深入了解计算机的内部工作原理,如数据存储、运算和传输等。这种简单而神奇的数字语言将帮助读者揭开计算机世界的神秘面纱,激发对科技的兴趣和探索欲望。
243 2
探索计算机内部的神秘语言:二进制的魅力
计算机组成原理(微课版) -- 第三章 -- 运算方法与运算器
计算机组成原理(微课版) -- 第三章 -- 运算方法与运算器
|
程序员 知识图谱
电影《孤注一掷》感触、计算机底层二进制与十进制的转换
看完《孤注一掷》后,我内心激荡起一股深刻的情感。今天,我希望与大家分享这部电影的观后感,同时还想简要介绍一下电影中涉及的秘密线索666关于二进制和十进制转换的原理。另外,也推荐一本我认为写得较为出色的计算机书籍——《计算机底层的秘密》。这段经历充满启示,引导我们一同深入探索其中蕴含的智慧。
901 0
电影《孤注一掷》感触、计算机底层二进制与十进制的转换
|
存储 C语言 数据格式
计算机组成原理(微课版) -- 第二章 –– 数据信息的表示
计算机组成原理(微课版) -- 第二章 –– 数据信息的表示
|
存储 Java 程序员
计算机中数据的存储(基础篇)
计算机中数据的存储(基础篇)
1238 0
|
存储 JavaScript 前端开发
计算机底层知识之二进制
用二进制数表示计算机信息的原因 推荐阅读指数 ⭐️⭐️⭐️⭐️ 什么是二进制 推荐阅读指数 ⭐️⭐️⭐️⭐️⭐️ 补数 推荐阅读指数 ⭐️⭐️⭐️⭐️⭐️ 逻辑运算 推荐阅读指数 ⭐️⭐️⭐️
198 0
计算机底层知识之二进制
|
存储 编译器 C语言
计算机的大小端存储模式(计算机小白必看!)
本文将介绍计算机存储数据时的大小端问题
|
存储 资源调度 算法
打通任督二脉:4000字,一文,从代码拆到计算机底层。
一个业务场景 假设我们要编写一个购买商品的程序,程序的内容很简单: 商品的库存数量存放在数据库中,每次完成库存数量-1。我们很快可以写出伪代码
73 0
|
存储 JavaScript 算法
计算机组成原理系列(二):计算机编码全解析
你是不是工作了很多年了,一直没搞清楚计算机中的各种编码规则,虽然平时都会使用,但是内部机制原理一直都是之其然而不知其所以然,开发中也会经常涉及到这块内容,但都没有太多重视
|
存储
为什么计算机中的每个字符都是以二进制形式存储的?底层原理是什么?
为什么计算机中的每个字符都是以二进制形式存储的?底层原理是什么?
156 0