戴揚(yáng)財(cái)
【摘要】 計(jì)算機(jī)學(xué)習(xí)是高職院校學(xué)生就業(yè)的基礎(chǔ),而二進(jìn)制和十進(jìn)制的轉(zhuǎn)化又是計(jì)算機(jī)學(xué)習(xí)的基礎(chǔ)。傳統(tǒng)的計(jì)算機(jī)課堂對(duì)于這部分內(nèi)容的介紹比較抽象枯燥。本文嘗試通過(guò)講故事,引發(fā)學(xué)生驚訝的方式來(lái)展開二進(jìn)制的學(xué)習(xí),為學(xué)生將來(lái)就業(yè)打下扎實(shí)的基礎(chǔ)。
【關(guān)鍵詞】 二的乘方 數(shù)量級(jí) 二進(jìn)制 十進(jìn)制 八進(jìn)制 十六進(jìn)制
二進(jìn)制是計(jì)算機(jī)技術(shù)學(xué)習(xí)的基礎(chǔ)。但當(dāng)前的很多計(jì)算機(jī)課程對(duì)它關(guān)注不夠,同時(shí),不少教材對(duì)于二進(jìn)制、十進(jìn)制之間的轉(zhuǎn)化過(guò)程的介紹過(guò)于抽象。高職院校學(xué)生基礎(chǔ)原本就比較差,難以適應(yīng)過(guò)于抽象化的基礎(chǔ)知識(shí)的學(xué)習(xí)。如何讓他們喜歡二進(jìn)制的學(xué)習(xí)呢?如何讓學(xué)生在生動(dòng)活潑的氣氛中為理解計(jì)算機(jī)技術(shù)打下扎實(shí)的基礎(chǔ)呢?由于大家都喜歡聽(tīng)故事,因此,筆者嘗試用講故事的方式來(lái)創(chuàng)新二進(jìn)制的講解。
一、在講故事的基礎(chǔ)上理解二進(jìn)制的數(shù)量級(jí)
在數(shù)學(xué)學(xué)習(xí)中,學(xué)生對(duì)于加減乘除的學(xué)習(xí)是很熟練的,但對(duì)于數(shù)的乘方的學(xué)習(xí)卻略顯不足。在數(shù)學(xué)的學(xué)習(xí)中,乘方運(yùn)算通常是通過(guò)轉(zhuǎn)化為乘法運(yùn)算來(lái)進(jìn)行的。這樣,學(xué)生對(duì)于應(yīng)用于數(shù)量級(jí)的乘方運(yùn)算實(shí)際上是不熟悉的。因此,要學(xué)好二進(jìn)制,就一定要熟記2的1——10次方。如何讓學(xué)生記住2的1——10次方呢?
上課時(shí),我首先問(wèn)學(xué)生:“你們吃過(guò)蘭州拉面嗎?”大家都說(shuō)吃過(guò)。我就接著問(wèn):“你們知道蘭州拉面是怎樣拉出來(lái)的嗎?”大家便議論起來(lái),說(shuō)不就是拉面師傅兩手拉出來(lái)的嗎?我說(shuō):“沒(méi)錯(cuò),拉面師傅首先揉成一團(tuán)面,再變成一根大棒形狀的面條,抓起這根面條一拉,就變成了2條,這是21=2。再拉一次,變成4條,就是22=4。第三次一拉,就是23=8。以此類推,就有24=16,25=32,26=64,27=128,28=256,29=512,210=1024。再把拉出的面條兩頭切去,中間的1024根面條扔進(jìn)鍋里,煮上幾分鐘,一碗熱氣騰騰的面條就可以端上來(lái)給大家品嘗啦?!?/p>
這樣,枯燥的數(shù)據(jù)記憶就變成了活生生的現(xiàn)實(shí)情境,我再讓全班同學(xué)站起來(lái),和我一起模擬做蘭州拉面的動(dòng)作,通過(guò)雙手的活動(dòng),大家在融洽的氣氛中,通過(guò)體力的伸展一下子記住了2的1——10次方。
很多學(xué)生都有接觸過(guò)這樣經(jīng)典的案例。就是把一張紙不斷地對(duì)折,這樣的操作,我們一般可以對(duì)折七、八次,接下來(lái)就進(jìn)行不下去了。為什么會(huì)這樣呢?因?yàn)閷?duì)折七次就重疊128張紙,對(duì)折八次就是256張紙,對(duì)折9次變成512張,對(duì)折10次就超過(guò)1000張啦。這里,大家通過(guò)回憶,又一次回顧了2的1——10次方。如果可以,我們把這張紙對(duì)折30次,這時(shí)就會(huì)有230張紙的厚度,這個(gè)厚度會(huì)超出我們的想象,如果有可能的話,我們可以沿著這個(gè)高度跑到月球上去。
大家一定聽(tīng)說(shuō)過(guò)印度的國(guó)王與宰相下棋的故事。有一次,國(guó)王和宰相在下國(guó)際象棋,結(jié)果宰相贏了。國(guó)王問(wèn)宰相需要什么賞賜,宰相說(shuō),他不要什么賞賜,只要國(guó)王給64個(gè)棋盤放上一些谷子就可以啦。國(guó)王問(wèn),那怎么放呢?宰相說(shuō),很簡(jiǎn)單,第一個(gè)格子放一粒,第二個(gè)格子放兩粒,第三個(gè)格子放4粒,第四個(gè)格子放8粒……以此類推,第64個(gè)格子放263粒。國(guó)王一聽(tīng)哈哈大笑,以為這太容易了,不就是1+ 2+4+8+16+32+64+128+256+512+1024+……+263嗎?依據(jù)運(yùn)算規(guī)律,它的結(jié)果是264-1,這個(gè)結(jié)果,國(guó)王就是把全世界的糧食給宰相,也是不夠的呢!
通過(guò)這些故事,我們知道了,二進(jìn)制雖然開始變化不大,但隨著數(shù)量級(jí)的增大,變化會(huì)出乎我們的意料之外。這也是為什么我們可以用二進(jìn)制來(lái)表達(dá)數(shù)據(jù)?以及為什么二進(jìn)制會(huì)成為電腦的基礎(chǔ)的原因。通過(guò)這些生動(dòng)的故事,學(xué)生對(duì)于二進(jìn)制的數(shù)量級(jí)會(huì)留下深刻的印象,為學(xué)習(xí)計(jì)算機(jī)技術(shù)提供了智力支持。
二、在講故事的基礎(chǔ)上實(shí)現(xiàn)十進(jìn)制、二進(jìn)制互化
在傳統(tǒng)的進(jìn)制學(xué)習(xí)中,十進(jìn)制轉(zhuǎn)化為二進(jìn)制是通過(guò)對(duì)2的輾轉(zhuǎn)相除,取余數(shù),逆序?qū)懗鰜?lái)實(shí)現(xiàn)的。如(45)10如何轉(zhuǎn)化為二進(jìn)制?就是45÷2=22余1,22÷2=11余0,11÷2=5余1,5÷2=2余1,2÷2=1余0,因此(45)10=(101101)2。那么,如何把二進(jìn)制變成十進(jìn)制呢?一般的,我們會(huì)告訴學(xué)生(101101)2轉(zhuǎn)化為十進(jìn)制就是1×25+0×24+1×23+1×22+ 0×21+1×20=32+8+4+1=(45)10。為什么這樣做呢?我們一般都會(huì)解釋說(shuō),這是類似于十進(jìn)制的做法。
這樣的轉(zhuǎn)化總覺(jué)得有點(diǎn)麻煩累贅。后來(lái),我與學(xué)生分享了一個(gè)人才招聘的故事。微軟公司的總裁比爾蓋茨大家都很熟悉吧。有一次,他到中國(guó)來(lái)招聘微軟公司的中國(guó)代理,面對(duì)眾多清華北大的應(yīng)聘學(xué)子,比爾蓋茨說(shuō):“你們是中國(guó)人的精英,我想出一道有關(guān)二進(jìn)制的問(wèn)題考一下你們,請(qǐng)你們聽(tīng)好題:我這里有1000個(gè)蘋果,你們給裝到10個(gè)箱子中,每個(gè)箱子中的蘋果數(shù)都不一樣,但我需要1000個(gè)以內(nèi)任何個(gè)數(shù)的蘋果你們都應(yīng)該可以在不拆開箱子的情況下,通過(guò)若干個(gè)箱子組合給我。你們準(zhǔn)備怎么裝呢?”據(jù)說(shuō)當(dāng)時(shí)沒(méi)有人能夠解出來(lái)。由于這個(gè)題目和學(xué)生招聘就業(yè)有關(guān),大家都聽(tīng)得很認(rèn)真,很仔細(xì)。
其實(shí),這個(gè)用二進(jìn)制方法是這樣做的:第一個(gè)箱子裝1個(gè);第二個(gè)箱子裝2個(gè);第三個(gè)箱子裝4個(gè);第四個(gè)箱子裝8個(gè);以此類推,一直到第九個(gè)箱子裝256個(gè)。前面這九個(gè)箱子就裝了1+2+4+8+16+32+64+128+256=511個(gè),由于蘋果只有1000個(gè),所以,第十個(gè)箱子應(yīng)該裝489個(gè)。
如果我們要234個(gè)蘋果,怎么辦?由于234=128+64+32+8+2,所以只要取裝了2、8、32、64、128個(gè)蘋果的5個(gè)箱子就可以啦。
實(shí)際上(234)10=(11101010)2,你看,左邊第一個(gè)1代表27=128,然后是代表64,32,0代表那個(gè)數(shù)量級(jí)的不需要取值,然后是代表8和2。這樣,我們又有了一種新的化十進(jìn)制轉(zhuǎn)化為二進(jìn)制的方法。
即我們不用輾轉(zhuǎn)相除法,直接從2的數(shù)量級(jí)來(lái)考慮。這種方法的優(yōu)點(diǎn)在于快捷,迅速。缺點(diǎn)是一定要對(duì)2的數(shù)量級(jí)結(jié)果很熟悉。這也是為什么我要求大家記住2的1——10次方的原因。如345如何轉(zhuǎn)化成為二進(jìn)制呢?就想象成要拿345個(gè)蘋果,先拿256個(gè),這個(gè)256用一個(gè)1來(lái)表示;剩下89個(gè),又可以知道128這個(gè)箱子不要取,用一個(gè)0來(lái)表示;可以繼續(xù)取出64個(gè),用1表示這個(gè)64;這時(shí)還剩下25個(gè),可以知道32個(gè)的箱子不要取,用一個(gè)0來(lái)表示;16個(gè)的這個(gè)箱子要取,用1來(lái)表示;還剩下9個(gè),可以取8個(gè)的箱子,并用1表示8;4個(gè)的和2個(gè)的箱子不用取,分別用0表示;最后還有一個(gè)1,就用1表示。
這樣從高位到低位依次寫出來(lái)就是101011001。開始可能會(huì)不太習(xí)慣,多練習(xí)幾次,就會(huì)發(fā)現(xiàn)這種從大處著手,從高位算起的方法的優(yōu)勢(shì)了。學(xué)生會(huì)因此進(jìn)一步熟練2的1——10次方。
熟悉了2的1——10次方,學(xué)生容易理解存儲(chǔ)器容量的單位換算。存儲(chǔ)的最小單位是位(bit),它是一個(gè)二進(jìn)制的0或者1,8位(bit)構(gòu)成1字節(jié)(Byte,簡(jiǎn)寫B(tài))。進(jìn)而又有1KB=1024B,1MB=1024KB,1GB=1024MB,1TB=1024GB。這里的bit,又翻譯成為“比特”。這樣同學(xué)們結(jié)合平時(shí)的U盤、移動(dòng)硬盤屬性和容量,很容易理解了這些單位換算,同時(shí)知道二進(jìn)制的“千”是2的10次方1024,比我們十進(jìn)制的“千”略大些。為什么購(gòu)買的U盤容量或者移動(dòng)硬盤容量總是這樣翻倍的擴(kuò)容呢?為什么我們的ASCII碼是256個(gè),分別從0——255呢?為什么我們的IP地址的那些數(shù)字也總是不能超過(guò)256呢?為什么在Excel的工作簿上有256(28)列,65536(216)行?這些都與二進(jìn)制的數(shù)字特點(diǎn)有關(guān)。讓同學(xué)們思考這些,有助于提高學(xué)習(xí)興趣,掌握計(jì)算機(jī)技術(shù)的基礎(chǔ),并為以后進(jìn)一步就業(yè)中碰到難題時(shí)展開自己的思考留下鋪墊。
三、迎接新的挑戰(zhàn),學(xué)會(huì)小數(shù)形式下的二進(jìn)制與十進(jìn)制轉(zhuǎn)換
0.8125×2 = 1.625…1
0.625×2 = 1.25…1
0.25×2 = 0.5…0
0.5×2 = 1 …1
至此小數(shù)部分已經(jīng)全為0,所以十進(jìn)制0.8125對(duì)應(yīng)二進(jìn)制的 0.1101。如果乘以2后始終得不到1,即小數(shù)部分無(wú)法變成0,那就只能是二進(jìn)制的循環(huán)小數(shù)啦,如十進(jìn)制的0.1:
0.1×2=0.2…0
0.2×2=0.4…0
0.4×2=0.8…0
0.8×2=1.6…1
0.6×2=1.2…1
0.2×2=0.4…0
開始循環(huán)啦,即(0.1)10=(0.0001100110011…)2。很有意思吧,簡(jiǎn)單十進(jìn)制的0.1,在二進(jìn)制中竟然是無(wú)限循環(huán)小數(shù)!不可思議吧!很多我們想當(dāng)然的東西一定要檢驗(yàn)才能真正確定,否則很容易出錯(cuò),這也是很多人害怕數(shù)學(xué),害怕數(shù)字的一個(gè)原因。
四、在二進(jìn)制的基礎(chǔ)上的八進(jìn)制、十六進(jìn)制
讓學(xué)生熟悉8以內(nèi)的二進(jìn)制數(shù)碼也是很有意義的。順序?qū)懗鰜?lái)是001,010,011,100,101,110,111。在玩味這些簡(jiǎn)單的0、1之后會(huì)產(chǎn)生新的數(shù)感。然后,我們可以學(xué)習(xí)八進(jìn)制。它有八個(gè)符號(hào):0,1,2,3,4,5,6,7。轉(zhuǎn)化十進(jìn)制為八進(jìn)制我們還是用輾轉(zhuǎn)相除的方法。如十進(jìn)制234轉(zhuǎn)化八進(jìn)制就是
234÷8=29…2
29÷8=3…5
和二進(jìn)制一樣逆序?qū)懗桑?52)8,當(dāng)一個(gè)十進(jìn)制數(shù)寫成八進(jìn)制后,有一個(gè)好處就是可以很方便的轉(zhuǎn)換成為二進(jìn)制數(shù),這只要讓八進(jìn)制的每一位用三個(gè)二進(jìn)制數(shù)碼代替就可以了。這樣,我們實(shí)際上又找到一個(gè)快捷轉(zhuǎn)化十進(jìn)制為二進(jìn)制的方法:先把十進(jìn)制轉(zhuǎn)化為八進(jìn)制,再把八進(jìn)制轉(zhuǎn)化為二進(jìn)制。如(234)10=(352)8=(011,101,010)2,這里直接把3、5、2寫成011、101、010就很方便了。這樣的學(xué)習(xí)真是一個(gè)步步有驚喜的過(guò)程啊。
十六進(jìn)制要注意的就是它的表示符號(hào)依次為0,1,2,3,4,5,6,7,8,9,a,b ,c,d,e,f,即用a,b ,c,d,e,f表示10、11、12、13、14、15。至于它和十進(jìn)制的轉(zhuǎn)化,這是和二進(jìn)制、八進(jìn)制類似的,就不必詳細(xì)講解了。
在計(jì)算機(jī)教學(xué)中,我們不難發(fā)現(xiàn),二進(jìn)制的數(shù)量級(jí)結(jié)果有助于學(xué)生理解后續(xù)計(jì)算機(jī)技術(shù)的很多內(nèi)容。如數(shù)據(jù)結(jié)構(gòu)中位的概念,在負(fù)數(shù)表示中對(duì)于數(shù)據(jù)變化的理解,對(duì)于計(jì)算機(jī)數(shù)據(jù)溢出的理解,對(duì)于計(jì)算機(jī)各方面數(shù)據(jù)的思考,這些都與二進(jìn)制的學(xué)習(xí)分不開。
計(jì)算機(jī)的很多硬件的結(jié)構(gòu)也和二進(jìn)制有關(guān),特別是存儲(chǔ)容量等與二進(jìn)制密不可分。因此,我們一定要通過(guò)改進(jìn)教學(xué)方式,提供豐富的生動(dòng)的材料推進(jìn)學(xué)生的學(xué)習(xí)。使他們形成堅(jiān)實(shí)的二進(jìn)制數(shù)感,為后續(xù)的繼續(xù)深入學(xué)習(xí)計(jì)算機(jī)技術(shù)打下堅(jiān)實(shí)的基礎(chǔ),并從中獲得學(xué)習(xí)的快樂(lè)。
參 考 文 獻(xiàn)
[1]湯鳴紅,試析高職院校計(jì)算機(jī)專業(yè)教學(xué)的改革[J],常州信息職業(yè)技術(shù)學(xué)院學(xué)報(bào),2009(4):21-23;
[2]曹平,論高職院校計(jì)算機(jī)教學(xué)模式改革[J],電子世界,2012(6):173。