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