趙永華++++陳海波
摘 要: 作者從在計算機基礎教學中有關數(shù)制轉(zhuǎn)換中學生作業(yè)中發(fā)現(xiàn)的問題入手,加以分析和有效解決,不僅保證教學效果,而且進一步提高教學質(zhì)量。
關鍵詞: 計算機基礎教學 Windows計算器 數(shù)制轉(zhuǎn)換法
在計算機應用基礎課程有關10/2/8/16進制轉(zhuǎn)換教學中,筆者并沒有按照教科書上那種讓學生感到很枯燥的方法進行教學,而是“換位思考”地采用“偷懶”的方式,即利用Windows系統(tǒng)提供的工具附件科學型計算器轉(zhuǎn)換,這樣就創(chuàng)造輕松的教學環(huán)境;在演示中讓學生發(fā)現(xiàn)Windows系統(tǒng)提供的科學型計算器一直存在一個致命的不足:就是要轉(zhuǎn)換的數(shù)字包含小數(shù)位時,那么它就不能識別非十進制數(shù)的小數(shù)部分,因為此時任何2/8/16進制數(shù)的小數(shù)部分都會丟失。由此造成“懸念”,抓住了全班同學的注意力。
在迄今多個版本《計算機文化基礎》教材中,介紹二進制數(shù)轉(zhuǎn)換成八進制數(shù)的方法是:“將二進制數(shù)從小數(shù)點開始,對二進制整數(shù)部分向左每3位分成一組,不足3位的向高位補0;對二進制小數(shù)部分向右每3位分成一組,不足3位的向低位補0湊成3位。每一組有3位二進制數(shù),分別轉(zhuǎn)換成八進制數(shù)碼中的一個數(shù)字,全部連接起來即可。”例如:把二進制數(shù)11111101.101 B轉(zhuǎn)化為八進制數(shù),算法如下表所示:
所以,11111101.101B=375.50。
再談將八進制數(shù)轉(zhuǎn)換成二進制數(shù),教材介紹說:“只要將每一位八進制數(shù)轉(zhuǎn)換成相應的3位二進制數(shù),依次連接起來即可。”教材在介紹二進制數(shù)與十六進制數(shù)相互轉(zhuǎn)換的方法即:“當二進制數(shù)轉(zhuǎn)換成十六進制數(shù),只要把每4位分成一組,再分別轉(zhuǎn)換成十六進制數(shù)碼中的一個數(shù)字,不足4位的分別向高位或低位補0湊成4位,全部連接起來即可;十六進制數(shù)轉(zhuǎn)換成二進制數(shù),只要將每一位十六進制數(shù)轉(zhuǎn)換成4位二進制數(shù),然后依次連接起來即可。”書中此時的例題是:將10110001.101B轉(zhuǎn)換為十六進制數(shù),算法如下表所示:
所以,10110001.101B=B1.AH。但是當筆者將運用上述通用型方法展開教學,但同學任意舉例時卻遇到了意外,請看下例:
學生舉例:將十六進制數(shù)10.25H轉(zhuǎn)換為二進制。
不少同學按照教材的方法,將其轉(zhuǎn)換為0001 0000. 1000 1010,即10000.1000101,但是將該二進制再按照教材方法逆推回去,得到的16進制數(shù)卻是:10.8AH。這顯然是不正確的。
為何出錯,分析原因,筆者發(fā)現(xiàn)同學將上述16進制轉(zhuǎn)換為二進制的算法誤解為:“將16進制數(shù)從小數(shù)點開始,對16進制整數(shù)部分向左每1位轉(zhuǎn)換為4位為一組的二進制數(shù)字,不足4位的向高位補0;對16進制小數(shù)部分向右每1位分成4位為一組的二進制數(shù)字,不足4位的向低位補湊成4位。”可見是學生想當然地理解導致出錯。那么,究竟該如何轉(zhuǎn)換呢?為此,筆者示范解題方法如下,即可避免同學重復犯錯。
舉例:將十六進制數(shù)10.25H轉(zhuǎn)換為二進制。
解題:將整數(shù)和小數(shù)各位轉(zhuǎn)換為對應的二進制,此即意味著轉(zhuǎn)換時的“補零”原則要求既不能擴大又不能縮小數(shù)字,在轉(zhuǎn)換時可借助Windows系統(tǒng)附件中提供的計算器程序并選擇“科學”或“程序員”類型,即如下所示:
個位:0—0000
十位:1—0001
小數(shù)第一位:2—0010
小數(shù)第二位:5—0101
然后連接起來即可得到正確結(jié)果10000.00100101
為了鞏固教學效果,筆者進一步要求同學完成以下練習,即“上機作業(yè)”將十六進制數(shù)10.25H轉(zhuǎn)換為8進制。
此時同學既可以采用16→10→8進制的轉(zhuǎn)換方法,又可以采取16→2→8進制的轉(zhuǎn)換方法,不少學生采用兩種算法。至此,有關計算機教學中有關10/2/8/16進制任何兩兩轉(zhuǎn)換的方法同學都能夠完全掌握,并在解題中游刃有余,教學效果更顯著。
由此,筆者將2/8/10/16進制數(shù)之間轉(zhuǎn)換的教學總結(jié)為以下五種通用方法:
1.R進制(2,8,16)轉(zhuǎn)化為十進制數(shù)的方法
對于任何一個二進制數(shù)、八進制數(shù)、十六進制數(shù),整數(shù)部分直接查計算器即可,只需將小數(shù)部分寫出其位權(quán)展開式,再按十進制進行計算即可將其轉(zhuǎn)換為十進制數(shù)。例如:
2.十進制數(shù)轉(zhuǎn)化R進制數(shù)的方法
十進制數(shù)的整數(shù)部分和小數(shù)部分需分別轉(zhuǎn)換,再拼接起來即可。具體而言,整數(shù)部分可以利用科學計算器直接得到;小數(shù)部分可連續(xù)乘以R,每次得到的整數(shù)值部分即為對應小數(shù)位的值,一直乘R直到小數(shù)部分為0或達到所要求的精度為止(因為有些數(shù)乘不盡)。
3.二進制轉(zhuǎn)換為十六進制或八進制的方法
二進制的整數(shù)部分直接查計算器,即可得到八進制或十六進制整數(shù)部分,對二進制小數(shù)部分向右每3位(八進制)或每4位(十六進制)分成一組,不足3位(或4位)的向低位補0湊成3位(或4位)。每一組有3位(或4位)二進制數(shù),分別轉(zhuǎn)換成八進制(或16進制)數(shù)碼中的一個數(shù)字,全部連接起來即可。
4.十六進制或八進制轉(zhuǎn)換為二進制的方法
十六進制或八進制的整數(shù)部分直接查計算器即可得二進制整數(shù)部分,而十六進制或八進制的小數(shù)部分只需將每一位通過計算器找到等值的數(shù)字(并非一味地右補零,也可能是左補零),然后連接起來即可。
5.十六進制與八進制直接轉(zhuǎn)換的方法
可以先轉(zhuǎn)換為十進制,再由十進制進行轉(zhuǎn)換,也可以先轉(zhuǎn)換為二進制再進行轉(zhuǎn)換,顯然后者方法更便捷。
參考文獻:
[1]山東省教育廳組編.計算機文化基礎(高職高專版,第10版)[M].中國石油大學出版社,2014(7).
[2]李新功,主編.計算機應用基礎[M].山東大學出版社,2011(9).