赵永华++++陈海波
摘 要: 作者从在计算机基础教学中有关数制转换中学生作业中发现的问题入手,加以分析和有效解决,不仅保证教学效果,而且进一步提高教学质量。
关键词: 计算机基础教学 Windows计算器 数制转换法
在计算机应用基础课程有关10/2/8/16进制转换教学中,笔者并没有按照教科书上那种让学生感到很枯燥的方法进行教学,而是“换位思考”地采用“偷懒”的方式,即利用Windows系统提供的工具附件科学型计算器转换,这样就创造轻松的教学环境;在演示中让学生发现Windows系统提供的科学型计算器一直存在一个致命的不足:就是要转换的数字包含小数位时,那么它就不能识别非十进制数的小数部分,因为此时任何2/8/16进制数的小数部分都会丢失。由此造成“悬念”,抓住了全班同学的注意力。
在迄今多个版本《计算机文化基础》教材中,介绍二进制数转换成八进制数的方法是:“将二进制数从小数点开始,对二进制整数部分向左每3位分成一组,不足3位的向高位补0;对二进制小数部分向右每3位分成一组,不足3位的向低位补0凑成3位。每一组有3位二进制数,分别转换成八进制数码中的一个数字,全部连接起来即可。”例如:把二进制数11111101.101 B转化为八进制数,算法如下表所示:
所以,11111101.101B=375.50。
再谈将八进制数转换成二进制数,教材介绍说:“只要将每一位八进制数转换成相应的3位二进制数,依次连接起来即可。”教材在介绍二进制数与十六进制数相互转换的方法即:“当二进制数转换成十六进制数,只要把每4位分成一组,再分别转换成十六进制数码中的一个数字,不足4位的分别向高位或低位补0凑成4位,全部连接起来即可;十六进制数转换成二进制数,只要将每一位十六进制数转换成4位二进制数,然后依次连接起来即可。”书中此时的例题是:将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位。”可见是学生想当然地理解导致出错。那么,究竟该如何转换呢?为此,笔者示范解题方法如下,即可避免同学重复犯错。
举例:将十六进制数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).