作者:夏云
写在前面
小时候,女儿讨厌奥数,后来,却特别爱上数学。
如今,她想成为一名数据科学家,她已获得计算机科学(CS)和数据科学(DS)双学士学位,还获得数据科学(DS)硕士学位。
为什么如此大的转变?不是加班加点刷题,而是我给她我给她讲了0和1的奥秘,她茅塞顿开,对数据的感觉发生了飞跃。
今天,我毫无保留地分享出来,期待对老师和家长能有启发。
一句两千年前的话,藏着计算机的秘密
老子在《道德经》里说:
道生一,一生二,二生三,三生万物。
这句话,中国人读了两千年,各有各的解法。
但有一群人读到这句话,可能心里会微微一震——那就是计算机科学家。
因为他们每天打交道的东西,恰好就是这个道理的现代版本:
从0和1出发,生出数字,生出文字,生出图像,生出声音,生出整个数字世界。
今天,我们就从这句古话出发,把二进制如何生成数字世界的底层逻辑,讲给孩子听。
第一问:为什么是0和1,而不是0到9?
跟孩子说:
你有十根手指,所以人类有了十个数字、10进制。
电脑里装着晶体管,它有几百亿个超级小的开关,每个开关只能断开或接通,所以它只需要两个数字:0和1,就可以准确表示出这几百亿个开关的无数的组合状态。
这不是谁规定的,是自然决定的。
我们平时用的是十进制——0到9,逢十进一。
为什么人类发明了十进制?
很可能是因为:我们有十根手指。
这是最自然的计数工具。远古人类扳手指数数,就这样用了几万年。
那计算机为什么不跟我们一样,用十进制呢?
因为计算机没有手指。
计算机的"手指",是电。
而电只有两种状态:通,或者断。有,或者没有。
这是自然界给出的最简单、最稳定的二元状态。于是科学家说:既然只有两种状态,就用两个数字来表示——0和1。
计算机里装着数以亿计的微小开关,叫做晶体管。每一个晶体管只有两种状态:断开(0)或接通(1)。就像一个极小的电灯开关,要么关,要么开,没有"半开"或60%开的状态。
第二问:0和1,怎么判断一件事?
在讲"0和1怎么数数"之前,我们先来玩一个游戏。
这个游戏,能让孩子一下子明白计算机是怎么"想事情"的。
猜动物的“通关“游戏。就是你心里想一个动物,比如老虎。
让孩子问几个问题,来判断出是哪个动物。
你回答的答案不能说话,而是用家里的一盏灯的“开”和“关”来表示。
”开“表示,是;“关”,表示否。这就相当于0和1的意思。
孩子的正确思路,也是计算机的二进制的思维方式,就是不断追问,缩小范围,最后得到答案。
这个问题,一般通过四个问题的就可以通关了。
它是哺乳动物吗?——💡 亮
它比狗大吗?————💡 亮
它有条纹吗?————💡 亮
是老虎吗?—————💡 亮
四个问题,四个灯泡的亮与灭,答案锁定了。
现在把这四个回答排成一行:
💡 💡 💡 💡(亮 亮 亮 亮)
换成数字:1 1 1 1
这就是二进制。
计算机做任何判断,最底层都是这种一问一答——是还是否,亮还是灭,1还是0。
这个游戏还藏着一个重要道理:问题问得越准,猜得越快。
如果第一个问题问的是"它好看吗"——太模糊,帮不上忙。
如果第一个问题问的是"它是哺乳动物吗"——一下子排除了鱼、鸟、昆虫,范围缩小一半。
这对孩子的启示是:不管是和人说话,还是和AI说话,问题问得清不清晰,决定了你能不能快速得到好答案。
第三问:只有0和1,能数清楚所有数吗?
能。小学二三年级的孩子大致可以理解这个道理。
规则只有一个:逢二进一。就像十进制逢十进一。
简单来说:
十进制的 1,二进制还是 1
十进制的 2,二进制是 10(逢二进一,个位归零)
十进制的 3,二进制是 11
十进制的 4,二进制是 100
以此类推……
数字越大,需要的位数越多,但始终只用0和1两个符号。
可以用计算机里的晶体管开关来数数:
和孩子一起做的小游戏:
把两只手的十根手指当作10个晶体管开关。
弯下去是0(断开),伸直是1(接通)。
只用这十根手指,用二进制,你能数到多少?(也就是有多少种不同的组合方式)
答案是:1023(从0数到1023,也就是1024种)。
如下:关 关 关 关 关 关 关 关 关 关 → 0
关 关 关 关 关 关 关 关 关 通 → 1
关 关 关 关 关 关 关 关 通 关 → 2
关 关 关 关 关 关 关 关 通 通 → 3
……
通 通 通 通 通 通 通 通 通 通 → 1023
想象一下,今天一部普通手机或计算机,里面有几百亿个这样的"双手"(晶体管)开关。
顺便说一下,在多少年前,芯片技术不行,要控制这些几百亿“双手”的开关,晶体管可能需要几十栋大楼才能放下。如今,电脑和手机进入普通百姓家庭,这就是芯片技术进步带来的意义。
但底层就是,几百亿个0和1的排列组合——这就是"三生万物"。可以表示无数种现实世界的事物。
第四问:0和1怎么变成汉字?
这是一个"约定"的故事。
全世界的计算机科学家坐在一起,做了一件事:给每个字符编一个号码。
比如:
字母"A"的编号是65
汉字"你"的编号是20320
汉字"好"的编号是22909
有了编号,再把编号转成二进制——"你"变成一串0和1,"好"变成另一串0和1。
计算机存储文字,存的就是这些编号的二进制形式。显示文字时,再把二进制编号查表,找到对应的字,画在屏幕上。
这个"编号表",叫做字符编码。全世界通用的那个版本叫Unicode,里面可收录一百多万个字符,包括几乎所有人类语言的文字,还有各种emoji表情。
类比:这就像古代的电报密码本。发电报的人查密码本,把"你好"变成一串数字发出去;收报的人也查同一本密码本,把数字翻译回"你好"。
计算机做的是同一件事,只不过速度快了几十亿倍。
第五问:图片、声音、视频,也都是0和1?
是的。世间所有信息,在计算机里都只有一种存在方式——0和1。
图片:把一张图片放大再放大,会发现它由无数个极小的彩色方块组成,这叫像素。每个像素的颜色用一组数字描述,数字再转成二进制。一张手机照片,就是几千万个像素的数字表格。
声音:声音是空气的振动,计算机每隔极短的时间采集一次声波的强弱,记成数字,转成二进制。播放时再还原成振动,就成了你听到的音乐或人声。
视频:就是每秒钟连续播放几十张图片,加上同步的声音。
文字、图片、声音、视频……所有的信息,在计算机里,都只是晶体管开关的不同排列,也就是0和1的不同组合。
这就是"三生万物"真正的现代含义。
跟孩子说:"你手机里存的照片、歌曲、视频,本质上都是同一种东西——一长串的0和1。只是读取的方式不同,眼睛看到的就成了图片,耳朵听到的就成了声音。"
第六问:这和数学、语文有什么关系?
说到这里,有人会问:这些知识很有趣,但和孩子的日常学习究竟有什么关系?
关系大了。
二进制思维,就是数学里的"分情况讨论"
还记得猜动物游戏吗?每个问题只有两种答案,一层一层缩小范围,最终锁定答案。
数学老师教的"分类讨论",逻辑完全一样:当x大于0时……当x等于0时……当x小于0时……
计算机里最基本的运算结构就是:如果……那么……否则……
这不是高深的编程知识,这是孩子在数学课上每天都在练习的思维方式。
编码思维,就是语文里的"把话说清楚"
字符编码的本质,是全世界的人约好同一套规则,信息才能流通。
语文课训练的恰恰也是这件事:用对方能理解的语言,准确传达你的意思。
一个孩子如果能把一件事情说得清清楚楚——先说什么,后说什么,哪里要强调,哪里要解释——他已经在做和计算机科学家一样的事情了。
孩子学会这种思维,遇到任何复杂的问题,都能问自己:这件事最小的单位是什么?从最小的单位开始,能不能一步一步搭出来?
回到那句古话
道生一,一生二,二生三,三生万物。
老子说的"道",是万物背后那个最根本的规律。
计算机科学家找到的"道",是0和1。
从0和1出发:
生出了数字
数字生出了字符
字符生出了语言
语言生出了图像、声音、视频
图像、声音、视频生出了互联网
互联网生出了……AI
整个数字文明,都建立在这两个状态上——一个晶体管的断开与接通。
两千年前的老子,当然不知道计算机。但他看到了一个更深的道理:最简单的起点,往往能生长出最复杂的世界。
这一点,放在今天,比以往任何时候都更真实。
在女儿不想探索数学时,我通过上面的故事,让她看见了数字世界的地基——那是两个符号,一个开关,和无穷无尽的可能。
留给孩子的一个问题
读完这篇文章,你可以讲给孩子听,然后问孩子这样一个问题,不需要标准答案,只是让他思考:
"如果你是当年设计计算机的科学家,你会不会也选择0和1?为什么?还有没有更好的选择?"