1024专题 | 小学生:电流是怎么把指令和数字告诉CPU的呢?

“hello world”

作为世界上第一个出现的程序,

“hello world”一直被程序员们津津乐道,

编程语言千万种,hello world终不变。

(以上都是哪些编程语言?有奖竞猜开始)

不过话说回来,world辣么大,

为什么程序员们不去看看?

还不是因为这个:

为此,程序猿中的文艺细菌们还赋诗一首:

十年编程两茫茫,工期短,需求长。

千行代码,Bug 何处藏。

纵使上线又如何,新版本,继续忙。

黑白颠倒没商量,睡地铺,吃食堂。

夜半梦醒,无人在身旁。

最怕灯火阑珊时,手机响,心里慌。

也是非常贴切了。

“1024”节

说了那么多差点忘记主题,

今天是想跟广大小伙伴们说一句:

Hi,节日快乐啊!

啥?什么节?

当然是“我们永远不寂寞”的1024节了!

好吧世上本来并没有这个节,

过的人多了也就成了节。

不过这个日子该庆祝啥,

相信在座诸位都懂的:

当然是庆祝二进制了!

1024是一个整数嘛,

1023与1025之间的自然数。

1024=2^{{10}}(2的10次方)。

它同时是32的平方:32^{{2}}。

其二进制表示为:10000000000。

本来1024这种东西应该是数学家的玩具。

但是不幸我们有了电脑,

而电脑是基于二进制运行的。

所以这个“奇怪”的数字就变得人尽皆知了。

10月24日,

也就变成了中国“程序员”的共同节日。

二进制对于程序猿们的意义是什么?

嗯,在程序员们的眼中,世界上有10种人:

    奇怪的二进制

然鹅,为什么计算机处理的信息

要用二进制数来表示呢?

这就要从计算机的内部构造说起了。

想必大家都知道,

计算机内部是由IC这种电子部件构成的。

IC,Integrated Circuit,集成电路。

IC有几种不同的形状。

有的像一条黑色蜈蚣,

在其两侧有数个乃至数百个引脚;

有的则像插花用的针盘,

引脚在IC内部并排排列着。

IC的所有引脚,

只有直流电压0V或5V两个状态。

也就是说:

IC的一个引脚只能表示两个状态。

IC的这个特性,

决定了计算机的信息数据只能用二进制数来处理。

由于1位(一个引脚)只能表示两个状态,

所以二进制的计数方式就变成了:

0、1、10、11、100…这种形式。

虽然二进制数并不是专门为IC而设计的,

但是和IC的特性非常吻合。

于是:

物理世界的1个引脚=1位(1bit)。

bit,是二进制数位(binary digit)的缩写。

位=计算机处理信息的最小单位。

二进制数的位数一般是8位、16位、32位……

也就是8的倍数,

8位二进制数=1个字节。

内存和磁盘都使用字节单位来存储和读写数据,

使用位单位则无法读写数据。

因此,字节是最基本的信息计量单位。

bit(位)是最小单位,

byte(字节)是基本单位。

于是:

8bit=1Byte,

1024Byte=1KB,

1024KB=1MB,

1024MB=1GB,

1024GB=1TB。

强行科普版

1024叔叔:大家见过电脑吗?

小学生:当然了!

1024叔叔:在哪里见过呢?

小学生:学校里就有。

1024叔叔:大家通常用电脑做什么呢?

小学生:画图或者上网。

1024叔叔:不错!

看来大家经常用电脑呀。

那么,大家知道电脑内部是怎么构成的吗?

小学生:不知道……

1024叔叔:那就让叔叔来告诉你们吧。

来,大家看这里!

小学生:这是什么呀?

1024叔叔:这个叫作CPU,是电脑的零部件。

正因为有了它,大家才能在电脑上画图和上网。

算术计算的时候也会用到哦。

电脑中有很多部件,

最重要的就是这个CPU。

小学生:咦,上面有好多昆虫一样的小脚(引脚)呢。

1024叔叔:不错,挺善于观察的嘛!

这个引脚会有电流通过。

小学生:通电后会怎么样啊?会发光吗?

1024叔叔:CPU不会发光。

但是,通过电流信号,

我们就可以给CPU发送指令或者传递数字信息等。

比如说,让电脑计算1+2的时候,

就要把进行加法计算的命令和1和2这两个数字传递给CPU。

小学生:电流是怎么把指令和数字告诉CPU的呢?

1024叔叔:不错不错,又注意到一个有意思的地方。

CPU的引脚有电流通过时,数值为1;

没有电流通过的时候,数值为0。

这是CPU里的规定。

咱们平时使用的是0~9这10个数字,

而电脑只用0和1这两个数字符号。

怎么样,是不是很有意思呀?

小学生:就用0和1,不会不够用吗?

1024叔叔:不会啊!咱们来数数看。

0、1、10、11、100、…、1010。

你看,还是够用的。

小学生:1的下一个是10(一零),

这好奇怪呀!

1024叔叔:(呵呵呵,马上就要讲到重点了)

不奇怪啊!这就是二进制数的计数方式。

咱们用0、1、2、3、…、9、10这样的顺序来计数,

数到9以后下一个就是10,这就是十进制数的计数方式。

电脑使用的是二进制数,用0和1来计数,

所以0和1的下一个数就是10了。

小学生:啊,不太明白呀……

1024叔叔:(啊啊,不妙啊……)

咱们换一种方式来考虑。

咱们还是用0~9的数字来计数。

但在遥远的宇宙边缘,

生活着只用数字0和1的外星人。

电脑就跟这个外星人差不多。

这样讲大家明白了吧?

小学生:???

1024叔叔:明白了吗?

小学生:嗯……

1024叔叔:回答得这么不干脆啊?

小学生:差不多……明白了吧。

正经版

程序员是什么?

从事程序开发、程序维护的专业人员。

程序是什么?

指示计算机每一步动作的一组指令。

程序由什么组成?

指令和数据。

例如,C语言“printf ("hello world"); ”

这个简单的程序中,

printf是指令,

" hello world"是数据。

程序是什么跑起来的?

通过机器语言与CPU“对话”。

机器语言是什么?

CPU能够直接识别和执行的语言。

使用C、Java等语言编写的程序,

最后都会转化成机器语言。

CPU是什么?

计算机的构成元件中,

根据程序的指令来进行数据运算,

并控制整个计算机的设备。

CPU由什么组成?

寄存器、控制器、运算器和时钟。

寄存器:可用来暂存指令、数据等处理对象,

可以将其看作是内存的一种。

控制器:负责把内存上的指令、数据等读入寄存器,

并根据指令的执行结果来控制整个计算机。

运算器:负责运算从内存读入寄存器的数据。

时钟:负责发出CPU开始计时的时钟信号。

CPU负责实现什么功能?

解释和运行最终转换成机器语言的程序内容。

整个过程怎么运作?

寄存器、控制器、运算器和时钟之间由电流信号相互连通。

程序启动后:

根据时钟信号,

控制器会从内存中读取指令和数据。

通过对这些指令加以解释和运行,

运算器对数据进行运算。

控制器根据运算结果来控制计算机。

所谓的控制,

就是指数据运算以外的处理,

主要是数据输入输出的时机控制。

比如内存和磁盘等媒介的输入输出,

键盘和鼠标的输入,

显示器和打印机的输出等,

这些都是控制的内容。

明白了吗?

嗯……

回答得这么不干脆啊?

差不多……明白了吧。

好的。

谨以此文,致敬“编程全世界”的程序员们。

去年今日2017.10.24:

科技想要什么

(0)

相关推荐