韋柬
摘 要:數制,特別是二進制和十進制,在計算機網絡專業課中,應用是必然的,然而,“數制”在計算機應用基礎課程的教與學中均沒有得到老師和學生的重視。學生要學習網絡基礎課程,就必須掌握二進制,要學生學好二進制,就要求老師在中職課堂教學中作出教法改革,而基于“回推”的教學方法正是應用在“二進制數與十進制數間相互轉換”教學內容的理想教學方法之一。
關鍵詞:數制 二進制數 十進制數 網絡課程 “回推”的教學方法 教學過程
中圖分類號:G63 文獻標識碼:A 文章編號:1673-9795(2013)03(b)-0039-02
數制也稱計數制,一種計數的規則,是用一組固定的符號和統一的規則來表示數值的方法[1]。日常生活中,我們所使用的數據一般是十進制數,而計算機使用的是只包含0和1兩個數值的二進制。人們輸入計算機的十進制數要被轉換成二進制數才能進行計算,計算后的結果又由二進制數轉換成十進制數,這些過程都是由操作系統自動完成,并不需要人工完成。對于計算機專業人員,特別是網絡技術維護人員來說,為了能有效地管理網絡,就必須了解和學習二進制,以及二進制數與十進制數間的相互轉換。當然,也要了解八進制、十六進制等形式的數制。
1 問題的提出
1.1 “數制”的教學狀況
在我們中專學校,無論是計算機專業還是非計算機專業學生,計算機應用基礎課程已經成為一門公共課,全國計算機等級一級(MS Office)考試報考率要達到100%。
根據《全國計算機考試一級MS Office教程》(2009年版)[2]所編寫內容和提綱要求,“數制”是全國計算機等級一級(MS Office)考試中必考的內容之一,其中二進制、二進制數與十進制數間相互轉換是重點,目的是為后續的學習內容打基礎。后續的學習內容主要有與西文字符編碼有關的ASCII碼表,同中文字符編碼有關的區位碼、國標碼、機內碼、漢字地址碼和漢字字形碼等。
學習和理解二進制是如此重要,但始終沒有引起教師和學生們的重視。一是在考試過程中,十進制數轉換成二進制數,或是二進制數轉換成十進制數,都是以選擇題的形式出現,一般為兩題,一題一分,所占比重很小,對考試的結果沒多大影響;二是學生喜歡走“捷徑”:利用Windows XP操作系統下的計算器數制轉換功能,僥幸得分;三是二進制沒有實際運用基礎,學生學后總感覺是除了考試,好象沒什么用,產生厭學心理;再就是學校所選用教材都沒有系統地闡明教法和學法,對于數學基礎較為薄弱的中職生來說,學生理解起來有難度。
經過一年半載的學習,雖然大家都能通過了等級考試,但因計算機專業學生對數制的理解不到位,甚至一點也不會,這給他們后續的專業課程學習留下了后癥,特別是網絡技術專業的學生,更加被動。
1.2 網絡課程學習的需要
計算機網絡技術是我校在國家級示范性中職學校建設中之重點建設專業之一,網絡管理和網絡維護是我們對中專生的培養方向。計算機網絡技術基礎、綜合布線技術、網站的建設與維護、實用組網技術等是學生必學的課程,你會發現這些課程,都要求學生深入掌握和理解TCP/IP網絡技術,IP地址、子網以及子網掩碼、網關等詞條貫穿整個專業課程學習的始末。如在網絡技術基礎課中,要學習IP地址及其分類,需要把十進制IP地址表示為二進制形式,才能斷定是哪類地址;當利用子網掩碼來劃分子網時,網絡ID號和子網掩碼號也都需要全部表示為二進制形式,才能分析可能的子網數目和子網內的主機數目。如果學生對二進制只是一知半解,對子網劃分的理解難度會加大,學習效果也大打折扣,在網絡管理和維護等一系列網絡教學實踐活動中,更沒把握如何設置或選擇好一個終端設備的IP地址[3]。
二進制,是計算機識別各種信息的基礎,同時,也是整個計算機網絡系統的基礎,學習和理解二進制,是中職學生通往網絡管理和網絡維護之路的敲門磚,我們不應忽視它的重要性。
2 傳統教學法
“數制”在計算機專業教學中一般包括二進制、八進制、十進制和十六進制,但最主要的是二進制。二進制數與十進制數之間的相互轉換成為教學的重點,也是中職學生非常難于理解的專業知識之一。
2.1 傳統的授課方法[2]
內容一:將二進制數轉換成十進制數。
方法是:將二進制按權位展開,然后各項相加,就得到相應的十進制數。
例:N=10110101B=(?)D
按權展開N=1×27+0×26+1×25+1×24+0×23+1×22+0×21+1×20
=128+0+32+16+0+4+0+1
=181D
根據經驗,在中職階段所開設的課程中,很少有用到帶小數的二進制數,所以一般都是以整數為主。
內容二:將十進制數轉換成二進制數。
將十進制數轉換成二進制數時,可將此數分成整數和小數兩部分分別進行轉換,然后再拼接起來即可。
將一個十進制整數轉換成二進制數采用“除2取余法”,即將十進制整數連續地除以2取余數,直到商為0,余數從右到左排列,首次取得的余數排在最右邊。
小數部分轉換成二進制采用“乘2取整”法,即將十進制小數不斷乘以2取整數,直到小數部分為0或達到要求的精度為止(小數部分可能永遠不會為0);所得的整數從小數點自左往右排列,取有效精度,首次取得的整數排在最左邊。
例:將十進制數225.8125轉換成二進制數(見圖1)。
轉換結果為:(225.8125)D=(11100001.1101)B
2.2 傳統教法的弊端
對于“內容一”中把二進制數轉換成十進制數,采用按權位展開求和的辦法,對于中職學生來說,還是能夠接受的。對于“內容二”所講的十進制數轉換成二進制數,從理論上說,“除2取余”和“乘2取整”這種方法和思路是符合科學理論依據的,整個運算過程也是清晰的,但教學效果卻不夠理想。一是冗長的除法、乘法運算,讓中職生又回想起繁瑣的數學運算,從而使他們在學習的前期就產生了厭煩情緒,導致上課注意力下降;二是學生容易產生混亂哪是高位、哪是低位,導致轉換結果不正確;再就是這種學習方法,理論性太強,對于中職生來說,缺少直接的感觀,學習乏味。通過平時課堂的提問和考試作答的情況,我發現,按照傳統教法進行教學,這一部分內容沒有任何教學效果,因此,改革教學方法勢在必行。
3 基于“回推”的教學方法和教學過程
“回推”法在數制教學中應用的基本思路是把一個二進制數轉換成等值的十進制數,是通過按權位展開式求“和”的,這個“和”就是要求的十進制數;反過來,一個十進制數轉換成等值的二進制數時,也應該能通過“權位展開式”產生相應的“和”,在這個“權位展開式”各權位上的碼值(0或1)的組合就是要求的二進制數,而不需要繁瑣的乘、除法等數學運算。
(1)引導學生找到二進制數轉換成十進制數規律。
例:N =11111111B
=1×27+1×26+1×25+1×24+1×23+1×22+1×21+1×20
=128+64+32+16+8+4+2+1
=255D
規律如下:
①8位二進制數各位置上權值分別為128,64,32,16,8,4,2,1;記憶上只需要記住最高位為128,后一位為前一位的1/2;或者只需要記住最低位為1,前一位為后一位的2倍。(如表1)
②當需要把一個二進制數轉換成十進制數,只需要把碼值為1的位相對應的權值相加即可。如:。
③一個字節(8位二進制數)各位置上的碼值全為1時,為最大值,等于255D;當一個二進制數中碼值為1的位數多于4個時,宜采用最大值減去碼值為0的位相對應的權值。如:。
(2)引導學生從轉換個例中找出普遍性,從而得出十進制數轉換成二進制數的規律。
可以讓學生去思考這樣的幾個個例:
例1:已知11111111B=255D,那么255D=(?)B。
例2:已知10001001B=137D,那么137D=(?)B。
例3:已知 00001001B=9D,那么9D=(?)B。
對于這樣例題,估計連小學生都難不了。問題在于引導學生學會發現規律、總結規律和運用規律,從而避免繁瑣的乘除法運算。
首先來看例3,00001001B=9D之所以成立,是因為左式二進制數位3和位0上的碼值為1,所對應的權值為8和1。那么,反過來,9D=00001001B也必然成立,原因也是因為右式二進制數位3和位0上的碼值為1,所對應的權值為8和1。對于例1和例2,也是同樣的道理。
我們可以再進一步對例3進行思考:在沒有“已知”的前提下,把9D轉換成二進制數時,你又是怎么知道位3和位0的碼值為1,其它位的碼值均為0而非1呢?
思考方法1:位4到位7的權值為16、32、64、128,均大于9D;位3碼值為1,是因為其權值為8,比9小;9減去8后只剩下1,所以位2和位1(權值為4和2)的碼值不可能再為1,位0為1,代表權值為1,正合適。
思考方法2:在128、64、32、16、8、4、2、1八個權值中,只有8和1相加得到值9,所以一個八位的二進制數只有權值為8和1所對應的位的數碼值為1,其它位為0。
用以上兩種方法去驗證例1和例2,甚至是其它的十進制數,答案是完全正確的。
經過以上的回推和思考,要把一個不大于255的十進制數N轉換成等值二進制數M,我們可以總結出以下規律:
①十進制數N在八位二進制數的8個權值(128、64、32、16、8、4、2、1)中,總能找到1個或以上不重復的權值之和與N等值,N為0除外。
②權值之和等于N的那些權所對應的二進制數的位的數碼置1,其余置0,即可完成從十進制數到二進制數的轉換。
(3)十進制數轉換成二進制數“回推”方法舉例。
以十進制數N =160D為例,說明回推的過程。
①若N >0,N先與最高位權值相比較:N ≥128,位7的數碼值為1,剩下N1=N-128=32,仍大于0,繼續求下一個位值。
②N1與位6的權值相比較:N1<64,位6的數碼值為0,N2=N1=32,仍大于0,繼續求下一個位值。
③N2與位5的權值相比較:N2≥32,位5的數碼值為1,接著N3=N2-32=0,已不大于0,余下的各位的數碼值均為0。
④最后,N=160D=10100000B。
以上方法簡單實用,只要掌握了十進制數轉換成二進制數的這個規律和轉換方法,對于職業高中計算機網絡課程的學習,可以說能基本上滿足需要。由于中職階段掌握八位二進制整數與十進制數間的轉換就已足夠,在此就不討論小數部分。
4 結語
二進制在計算機應用基礎課是一個純理論內容,在高一年級,雖然在缺少實踐環節的教學中還看不到它的關鍵性所在,但到了高二年級所開設的網絡課程,每門課都涉及到IP址和二進制數,也必然會產生十進制數與二進制數之間的相互轉換問題。依我的經驗看,對于計算機專業方向的學生,在學習計算機應用基礎課程時,不僅要講授“數制”這方面的內容,而且有必要要求任課老師精講巧教、學生多學多練,融會貫通,這不僅是為應付全國計算機等級考試的需要,同時也是為專業課的學習打下堅實基礎。
參考文獻
[1] 焦素敏.數字電子技術基礎[M].北京:人民郵電出版社,2012.8:5
[2] 李冰.全國計算機等級考試一級MS Office教程[M].天津:南開大學出版社,2009,7:12-15.
[3] 劉兵,左愛群,等.計算機網絡基礎與Internet應用[M].北京:中國水利水電出版社,2006,10:80-85.