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

news/2024/7/24 9:04:51 标签: java, 人工智能, 编程语言, 大数据, 物联网

a8c869130c29ef9c4dbc84f3b1e4813b.png

大家好,我是这波能反杀,一个梦想要成为最好的前端知识分享博主的前端工程师。

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

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

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

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

6b8b0ed757fbd90c136bcc1b18af88d0.png

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

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

15da5dbfd028950255f8193e6f58c0ce.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 就包含了上亿个二极管。

49b0aca6c0a1ca1bba99da4d22abe90a.png

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

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

0e7574a09d25c6e07c6392afc6404b1f.png

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

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

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

我是这波能反杀,关注我解锁更多前端技术。


http://www.niftyadmin.cn/n/1781041.html

相关文章

1000以内素数

转载于:https://blog.51cto.com/nobelking/1374475

35岁危机?请收下这部转型秘籍

Hi,我是叶小钗,从技术转型成管理,可以聊聊吗?生产队的驴去年成长较大,过年期间多数时间在做复盘,结果就是屯了十几篇文章...上班后开始发文,在大家眼中就像生产队的驴一样,其实不过年…

《沉静领导》读书笔记zz

就 像作者说的,这本书“只是一篇简单的随笔,它描绘并阐明了一种关于领导之道的思考方式,并且为把这种思考方式应用到实际行动中提供了指南。”但是,仔细想 来,倒有一点不同见解,或许,它描述的不…

java代码编写出现的陷阱-2:阴沟里翻船

(1) 警惕自增的陷阱java一元运算符有,--, i表示先赋值后加1,i表示先加1后赋值,--同理,但是如果遇到以下代码,你恐怕是阴沟里翻船,不多说,看代码:public static void main(String[] args) {int count 0;for (int i 0; i < 10; i) {count count;}System.out.println("…

国服第一切图仔?

今天向大家推荐一位在前端偏前领域颇有建树的前端博主 -- Coco。国服第一切图仔 Coco&#xff0c;目前工作 7 年&#xff0c;曾任职于 YY、腾讯&#xff0c;目前在某一线电商互联网公司担任前端技术管理&#xff0c;一直在飞速成长&#xff0c;本科毕业 3 年即腾讯 T3-1。Githu…

大厂裁员登上热搜,谈谈我的三点认知

tu 大家好&#xff0c;我是 梦想家 Alex ~因为昨天恰好看到了大厂裁员的热搜 &#xff0c;和几篇相关的文章&#xff0c;所以就打算就着这个话题简单和大家分享几点我的认知&#xff0c;希望对大家有所帮助&#xff01;1老板只会给你一个位置&#xff0c;不会给你一个未…

[c#基础]关于const和readonly常见的笔试题剖析

引言 有那么几天没更新博客了&#xff0c;发现到了不得不写的地步&#xff0c;总是有那么个声音在强迫自己&#xff0c;虽然工作很累&#xff0c;但是有些东西不写出来&#xff0c;不能原谅自己。今天为什么总结这两个关键字的区别&#xff0c;总觉得这两个关键字的用法用的太习…

hadoop hbase无法启动 2

今天又碰到的问题&#xff1a;Not able to place enough replicas2015-02-08 18:35:43,978 ERROR org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException as:web cause:java.io.IOException: File /hbase/aaaa/fbade52c03733ec2aa6d5355052d9c89/recov…