小編程達(dá)人養(yǎng)成計(jì)劃,就從學(xué)點(diǎn)計(jì)算機(jī)語(yǔ)言編個(gè)二進(jìn)制手鏈開(kāi)始吧!
想學(xué)會(huì)編程,孩子們就需要了解計(jì)算機(jī)是怎么工作的,計(jì)算機(jī)使用什么來(lái)跟我們溝通。這樣的話,就繞不開(kāi)二進(jìn)制碼,這是計(jì)算機(jī)的語(yǔ)言,計(jì)算機(jī)用二進(jìn)制數(shù)字來(lái)代表信息。
字母、數(shù)字、圖片等等……基本上你在電腦上所看到的一切都由0和1的不同組合。
在我們看來(lái)這一切似乎是隨機(jī),但其實(shí)二進(jìn)制碼是基于二進(jìn)制數(shù)的一個(gè)系統(tǒng),這意味著二進(jìn)制碼只能使用兩個(gè)數(shù)字,即“0”和“1”。我們?nèi)粘I钏褂玫氖M(jìn)制系統(tǒng)是一個(gè)由十個(gè)數(shù)字組成的系統(tǒng)。在數(shù)字“9”之后十進(jìn)制系統(tǒng)從10開(kāi)始進(jìn)位。二進(jìn)制系統(tǒng)的工作原理也一樣,只是在“0”和“1”之后就要進(jìn)位了。所以,數(shù)字“2”在二進(jìn)制代碼中就是“10”。
二進(jìn)制是怎么回事兒呢?
我們可以把電腦想象成,一束由不同開(kāi)關(guān)來(lái)控制的燈組成,然后每個(gè)開(kāi)關(guān)只控制一個(gè)燈泡。亮和滅就是1和0。
如果你把所有的燈泡放在一起。我們讓有的燈亮,有的燈滅,組成各種不同的排列,代表不同的數(shù)字。然后,如果我們有很多開(kāi)關(guān),我們就能得到非常龐大的數(shù)字。
燈
那么,這個(gè)排列是什么意思呢?我們來(lái)看看兩個(gè)燈的情況。
兩個(gè)燈泡都滅
第一個(gè)滅,第二個(gè)亮
第一個(gè)亮,第二個(gè)滅
兩個(gè)燈泡都亮
二進(jìn)制給這每種組合分配一個(gè)數(shù)字:
兩個(gè)燈泡都滅 = 0
第一個(gè)滅,第二個(gè)亮 = 1
第一個(gè)亮,第二個(gè)滅 = 2
兩個(gè)燈泡都亮 = 3
一組燈的情況(不是下邊這個(gè)例子的數(shù)字)
還有一種思考方式:假設(shè)每個(gè)燈泡都有一個(gè)點(diǎn)值,好比說(shuō)第一個(gè)燈泡值兩分,第二個(gè)燈泡值一分。然后我們?cè)賮?lái)看看如何表述上述組合:
兩個(gè)燈泡都滅 = 0 + 0 = 0
第一個(gè)滅,第二個(gè)亮 = 0 + 1 = 1
第一個(gè)亮,第二個(gè)滅 = 2 + 0 = 2
兩個(gè)燈泡都亮 = 2 + 1 = 3
再加一個(gè)燈泡,假設(shè)它值4分(2的兩倍)。然后,要是所有燈泡都亮,等式就是 4+2+1=7。再加一個(gè)燈泡,假設(shè)它值8分(4再乘2)。現(xiàn)在所有燈泡都亮的話,總數(shù)值就是8+4+2+1=15。由此可見(jiàn),大數(shù)字的得出需要“點(diǎn)亮”很多個(gè)燈泡。
最終,就算我們給所有燈泡都賦予一定數(shù)值,記錄的時(shí)候仍舊記的是若干個(gè)1和0——1代表燈亮,0代表燈滅。
假設(shè)有8個(gè)燈泡,設(shè)計(jì)如下:
滅 滅 亮 亮 滅 亮 滅 滅
其代表數(shù)值為:
0 + 0 + 32 + 16 + 0 + 4 + 0 + 0
(牢記一點(diǎn): 只有亮起的燈泡才有數(shù)值!)
其總和為52。因此,我們就可以說(shuō)這列燈泡代表的數(shù)值是52。那么,如何用計(jì)算機(jī)語(yǔ)言表述呢?
記錄如下:
因此,我們可以說(shuō)(二進(jìn)制)代表的是52。
這就是二進(jìn)制代碼原理。
你可以嘗試在編碼器中輸入一些文本,計(jì)算機(jī)將會(huì)將其轉(zhuǎn)換為數(shù)字,然后再用二進(jìn)制計(jì)數(shù)法對(duì)這些數(shù)字進(jìn)行轉(zhuǎn)換!你知道嗎?——計(jì)算機(jī)表述任何字母都需要8個(gè)“燈泡”。所以一個(gè)由5個(gè)字母組成的單詞需要40個(gè)“燈泡”!
為什么電腦要用二進(jìn)制?
二進(jìn)制的運(yùn)算法則少,運(yùn)算簡(jiǎn)單,用二進(jìn)制計(jì)算機(jī)運(yùn)算器的硬件結(jié)構(gòu)不需要很復(fù)雜,十進(jìn)制乘法九九口訣有55條公式,而二進(jìn)制乘法只有4條規(guī)則。
另外,采用二進(jìn)制,只有0和1兩個(gè)狀態(tài),能夠表示0和1兩種狀態(tài)的電子器件有很多,比如開(kāi)關(guān)的接通和斷開(kāi)、晶體管的導(dǎo)通和截止、磁原件的正負(fù)剩磁、電位電平的高低等都可以表示0和1兩個(gè)數(shù)。
編個(gè)二進(jìn)制手鏈吧!
如果孩子暫時(shí)還理解不了也沒(méi)關(guān)系,我們用二進(jìn)制做一個(gè)生日手鏈,這樣也許能幫助他們理解。
材料:三種不同顏色的珠子,材料可以是粘土,也可以是現(xiàn)成的珠子,繩子。
第一步:先寫(xiě)下你生日的數(shù)字格式。例如,如果你出生于2015年1月10日,那么,應(yīng)該寫(xiě)成1/10/15。二進(jìn)制代碼則應(yīng)該寫(xiě)成01/1010/1111。
我們剛才說(shuō)了,電腦大都采用8位二進(jìn)制碼序列。為了簡(jiǎn)單起見(jiàn),但為了方便孩子理解和操作,我們縮短了以下的二進(jìn)制碼序列。為了把代碼變成8位,要在數(shù)字前加“0”來(lái)成為八個(gè)占位符。例如,“1”應(yīng)該寫(xiě)成“”。
第二步:選出三種顏色的珠子,一種顏色的珠子代表“0”,第二種顏色的珠子代表“1”,第三種顏色來(lái)代表數(shù)字之間的間隔。
第三步:按照代表你生日日期的二進(jìn)制代碼對(duì)珠子進(jìn)行排序。并且用第三種顏色的珠子表示間隔。
第四步:把珠子按照之前排好的順序用繩子串聯(lián)起來(lái)。
小提示:在穿第一個(gè)珠子之前,在繩子末端打上結(jié),防止珠子從你的手鐲上滑落。
第五步:所有珠子串好以后,把繩子兩端打成結(jié),做成一個(gè)可穿戴的手鐲(或手鏈)。
一旦你學(xué)會(huì)了破解二進(jìn)制碼,你就可以發(fā)揮創(chuàng)意自己做出各種各樣的小配飾。瞧,二進(jìn)制碼是不是像數(shù)數(shù)那樣簡(jiǎn)單呢。
最后果醬還有一個(gè)問(wèn)題,你覺(jué)得顯示這篇文章需要多少個(gè)“燈泡”呢?哈哈,逗你的啦~
翻譯:鮮于文雯、金魚(yú)璨
加入【果殼-博物日常交流群】微信群方法: