seegongsik
结构

怎么工作 计算机 为什么用0和1

看照片、听音乐,在计算机里都只靠两种状态来完成。这两种状态是什么,用桌上的一个开关就能讲清楚。我们一个一个打开开关,慢慢把它弄明白。

01

要么开,要么关,没有中间

房间里的电灯开关,不是开就是关,没有开一半这种含糊的状态。计算机的零件也一样:电路里要么有电流通过,要么没有。

于是人们约定,把开叫作1,把关叫作0。0和1并不是什么难懂的密码,只是给开关两种状态起的名字。电灯开关往上一按灯就亮,往下一按灯就灭,计算机里发生的也是同样的事。不同的是,那里的开关小到肉眼看不见,一块芯片里就有几十亿个。

0
现在: 关 = 0

每按一次,开和关就切换一次。刚打开页面时,它会自己闪一下。

02

按十级来数不是更方便吗?

人有十根手指,所以习惯用0到9的十进制。那计算机为什么不把电的强弱分成十级来数呢?问题在于,用电清楚地分辨出十个等级非常困难。

下图上面一排是把亮度分成十级的灯。相邻两级亮度差不多,很难看出是第几级。下面一排只有开和关两种,根本不会弄混。计算机选择两级,正是为了这份确定性。

人一眼就能分清9和8,可对机器来说,9份的电和8份的电太接近了。电压稍微一晃,9就可能被读成8。开和关差别很大,一般的波动根本影响不了。对既要快又要准的计算机来说,这种确定性比什么都重要。

十档
↓
两档

十级容易和相邻的级混淆,两级一眼就能分清。

03

把开关排成一排,就成了数

一个开关只能表示0或1两种情况。可要是把好几个开关并排放好,再给每个位置定一个值,情况就不一样了。最右边一位是1,往左每走一位就翻一倍:2、4、8……

1
×2
2
×2
4
×2
8
×2
16
×2
32
×2
64
×2
128

位值从右往左,每一位翻一倍。

现在轮到你动手了。点下面8个开关中的任意几个,开着的位值加起来的和就会显示在上方。这个和就是计算机读到的数。第一个任务是拼出13。

128
0
64
0
32
0
16
0
8
0
4
0
2
0
1
0
0 0 0 0 0 0 0 0
把打开的值全加起来
 
0
任务:拼出 13

把开着的位值全部加起来,上面的数就会变。13 = 8 + 4 + 1。

04

从0开始依次数

十进制里9的下一个数要进位成10,二进制也是一位满了就向高位进位。唯一的区别是,二进制到1就马上进位。按下播放,就能看到位一闪一闪,数一个一个往上加。

0
0
0
0
0
0
0
0
0

最右边的位每数一次就变一次,它旁边的位每两次变一次。

熟悉了这个规律,你就会觉得只用0和1能数到任意大的数,是很自然的事。我们用的十进制,原理也完全一样。区别只在于每一位放0到9这十个数字,还是只放0和1这两个。

05

那文字和图片呢?

再往前走一步。既然计算机只会处理数,那它怎么显示文字呢?答案出乎意料地简单:先做一张对照表,给每个字母编好号,比如A是65号,B是66号。

在下面选一个字母,它的编号马上变成0和1,小方格随之亮灭,把这个数表示出来。图片也是一样。把每个点的颜色写成数,最后就全都成了0和1。

你每天看的屏幕就是这样做出来的。数不清的点各自把颜色存成数,这些数又写成0和1。不管是文字、照片还是视频,打开来看都是同样一串0和1。它们不是由不同的材料做成的,而是用同一种材料做出了不同的东西。

A
编号 65 写成0和1
0 1 0 0 0 0 0 1

选一个字母,它的编号就变成0和1。

06

每多一个开关,就翻一倍

最后是最神奇的部分。每多加一个开关,能表示的情况就翻一倍。1个是2种,2个是4种。听起来不算什么,可你把下面的滑块拉到底,就知道了。

正在加载 3D…
2 种
1 位 · 2¹

位数越多,亮起的小方块就成倍增加。还可以拖动旋转。

只有8位,就已经有256种。16位就超过6万种。每次只翻一倍,很快就变成天文数字。简单的开关能装下这么大的世界,秘诀就在这里。像吉、太这样的单位,说到底也是在数这样的开关聚了多少。

一句话总结一张照片也好,一首喜欢的歌也好,往里看都是开关的开和关。看起来复杂的0和1,其实只是数开关状态的一种方法。
← 结构
如果有帮助,请支持我们