讲故事 学进制
2015-05-30戴扬财
戴扬财
【摘要】 计算机学习是高职院校学生就业的基础,而二进制和十进制的转化又是计算机学习的基础。传统的计算机课堂对于这部分内容的介绍比较抽象枯燥。本文尝试通过讲故事,引发学生惊讶的方式来展开二进制的学习,为学生将来就业打下扎实的基础。
【关键词】 二的乘方 数量级 二进制 十进制 八进制 十六进制
二进制是计算机技术学习的基础。但当前的很多计算机课程对它关注不够,同时,不少教材对于二进制、十进制之间的转化过程的介绍过于抽象。高职院校学生基础原本就比较差,难以适应过于抽象化的基础知识的学习。如何让他们喜欢二进制的学习呢?如何让学生在生动活泼的气氛中为理解计算机技术打下扎实的基础呢?由于大家都喜欢听故事,因此,笔者尝试用讲故事的方式来创新二进制的讲解。
一、在讲故事的基础上理解二进制的数量级
在数学学习中,学生对于加减乘除的学习是很熟练的,但对于数的乘方的学习却略显不足。在数学的学习中,乘方运算通常是通过转化为乘法运算来进行的。这样,学生对于应用于数量级的乘方运算实际上是不熟悉的。因此,要学好二进制,就一定要熟记2的1——10次方。如何让学生记住2的1——10次方呢?
上课时,我首先问学生:“你们吃过兰州拉面吗?”大家都说吃过。我就接着问:“你们知道兰州拉面是怎样拉出来的吗?”大家便议论起来,说不就是拉面师傅两手拉出来的吗?我说:“没错,拉面师傅首先揉成一团面,再变成一根大棒形状的面条,抓起这根面条一拉,就变成了2条,这是21=2。再拉一次,变成4条,就是22=4。第三次一拉,就是23=8。以此类推,就有24=16,25=32,26=64,27=128,28=256,29=512,210=1024。再把拉出的面条两头切去,中间的1024根面条扔进锅里,煮上几分钟,一碗热气腾腾的面条就可以端上来给大家品尝啦。”
这样,枯燥的数据记忆就变成了活生生的现实情境,我再让全班同学站起来,和我一起模拟做兰州拉面的动作,通过双手的活动,大家在融洽的气氛中,通过体力的伸展一下子记住了2的1——10次方。
很多学生都有接触过这样经典的案例。就是把一张纸不断地对折,这样的操作,我们一般可以对折七、八次,接下来就进行不下去了。为什么会这样呢?因为对折七次就重叠128张纸,对折八次就是256张纸,对折9次变成512张,对折10次就超过1000张啦。这里,大家通过回忆,又一次回顾了2的1——10次方。如果可以,我们把这张纸对折30次,这时就会有230张纸的厚度,这个厚度会超出我们的想象,如果有可能的话,我们可以沿着这个高度跑到月球上去。
大家一定听说过印度的国王与宰相下棋的故事。有一次,国王和宰相在下国际象棋,结果宰相赢了。国王问宰相需要什么赏赐,宰相说,他不要什么赏赐,只要国王给64个棋盘放上一些谷子就可以啦。国王问,那怎么放呢?宰相说,很简单,第一个格子放一粒,第二个格子放两粒,第三个格子放4粒,第四个格子放8粒……以此类推,第64个格子放263粒。国王一听哈哈大笑,以为这太容易了,不就是1+ 2+4+8+16+32+64+128+256+512+1024+……+263吗?依据运算规律,它的结果是264-1,这个结果,国王就是把全世界的粮食给宰相,也是不够的呢!
通过这些故事,我们知道了,二进制虽然开始变化不大,但随着数量级的增大,变化会出乎我们的意料之外。这也是为什么我们可以用二进制来表达数据?以及为什么二进制会成为电脑的基础的原因。通过这些生动的故事,学生对于二进制的数量级会留下深刻的印象,为学习计算机技术提供了智力支持。
二、在讲故事的基础上实现十进制、二进制互化
在传统的进制学习中,十进制转化为二进制是通过对2的辗转相除,取余数,逆序写出来实现的。如(45)10如何转化为二进制?就是45÷2=22余1,22÷2=11余0,11÷2=5余1,5÷2=2余1,2÷2=1余0,因此(45)10=(101101)2。那么,如何把二进制变成十进制呢?一般的,我们会告诉学生(101101)2转化为十进制就是1×25+0×24+1×23+1×22+ 0×21+1×20=32+8+4+1=(45)10。为什么这样做呢?我们一般都会解释说,这是类似于十进制的做法。
这样的转化总觉得有点麻烦累赘。后来,我与学生分享了一个人才招聘的故事。微软公司的总裁比尔盖茨大家都很熟悉吧。有一次,他到中国来招聘微软公司的中国代理,面对众多清华北大的应聘学子,比尔盖茨说:“你们是中国人的精英,我想出一道有关二进制的问题考一下你们,请你们听好题:我这里有1000个苹果,你们给装到10个箱子中,每个箱子中的苹果数都不一样,但我需要1000个以内任何个数的苹果你们都应该可以在不拆开箱子的情况下,通过若干个箱子组合给我。你们准备怎么装呢?”据说当时没有人能够解出来。由于这个题目和学生招聘就业有关,大家都听得很认真,很仔细。
其实,这个用二进制方法是这样做的:第一个箱子装1个;第二个箱子装2个;第三个箱子装4个;第四个箱子装8个;以此类推,一直到第九个箱子装256个。前面这九个箱子就装了1+2+4+8+16+32+64+128+256=511个,由于苹果只有1000个,所以,第十个箱子应该装489个。
如果我们要234个苹果,怎么办?由于234=128+64+32+8+2,所以只要取装了2、8、32、64、128个苹果的5个箱子就可以啦。
实际上(234)10=(11101010)2,你看,左边第一个1代表27=128,然后是代表64,32,0代表那个数量级的不需要取值,然后是代表8和2。这样,我们又有了一种新的化十进制转化为二进制的方法。
即我们不用辗转相除法,直接从2的数量级来考虑。这种方法的优点在于快捷,迅速。缺点是一定要对2的数量级结果很熟悉。这也是为什么我要求大家记住2的1——10次方的原因。如345如何转化成为二进制呢?就想象成要拿345个苹果,先拿256个,这个256用一个1来表示;剩下89个,又可以知道128这个箱子不要取,用一个0来表示;可以继续取出64个,用1表示这个64;这时还剩下25个,可以知道32个的箱子不要取,用一个0来表示;16个的这个箱子要取,用1来表示;还剩下9个,可以取8个的箱子,并用1表示8;4个的和2个的箱子不用取,分别用0表示;最后还有一个1,就用1表示。
这样从高位到低位依次写出来就是101011001。开始可能会不太习惯,多练习几次,就会发现这种从大处着手,从高位算起的方法的优势了。学生会因此进一步熟练2的1——10次方。
熟悉了2的1——10次方,学生容易理解存储器容量的单位换算。存储的最小单位是位(bit),它是一个二进制的0或者1,8位(bit)构成1字节(Byte,简写B)。进而又有1KB=1024B,1MB=1024KB,1GB=1024MB,1TB=1024GB。这里的bit,又翻译成为“比特”。这样同学们结合平时的U盘、移动硬盘属性和容量,很容易理解了这些单位换算,同时知道二进制的“千”是2的10次方1024,比我们十进制的“千”略大些。为什么购买的U盘容量或者移动硬盘容量总是这样翻倍的扩容呢?为什么我们的ASCII码是256个,分别从0——255呢?为什么我们的IP地址的那些数字也总是不能超过256呢?为什么在Excel的工作簿上有256(28)列,65536(216)行?这些都与二进制的数字特点有关。让同学们思考这些,有助于提高学习兴趣,掌握计算机技术的基础,并为以后进一步就业中碰到难题时展开自己的思考留下铺垫。
三、迎接新的挑战,学会小数形式下的二进制与十进制转换
0.8125×2 = 1.625…1
0.625×2 = 1.25…1
0.25×2 = 0.5…0
0.5×2 = 1 …1
至此小数部分已经全为0,所以十进制0.8125对应二进制的 0.1101。如果乘以2后始终得不到1,即小数部分无法变成0,那就只能是二进制的循环小数啦,如十进制的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
开始循环啦,即(0.1)10=(0.0001100110011…)2。很有意思吧,简单十进制的0.1,在二进制中竟然是无限循环小数!不可思议吧!很多我们想当然的东西一定要检验才能真正确定,否则很容易出错,这也是很多人害怕数学,害怕数字的一个原因。
四、在二进制的基础上的八进制、十六进制
让学生熟悉8以内的二进制数码也是很有意义的。顺序写出来是001,010,011,100,101,110,111。在玩味这些简单的0、1之后会产生新的数感。然后,我们可以学习八进制。它有八个符号:0,1,2,3,4,5,6,7。转化十进制为八进制我们还是用辗转相除的方法。如十进制234转化八进制就是
234÷8=29…2
29÷8=3…5
和二进制一样逆序写成(352)8,当一个十进制数写成八进制后,有一个好处就是可以很方便的转换成为二进制数,这只要让八进制的每一位用三个二进制数码代替就可以了。这样,我们实际上又找到一个快捷转化十进制为二进制的方法:先把十进制转化为八进制,再把八进制转化为二进制。如(234)10=(352)8=(011,101,010)2,这里直接把3、5、2写成011、101、010就很方便了。这样的学习真是一个步步有惊喜的过程啊。
十六进制要注意的就是它的表示符号依次为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。至于它和十进制的转化,这是和二进制、八进制类似的,就不必详细讲解了。
在计算机教学中,我们不难发现,二进制的数量级结果有助于学生理解后续计算机技术的很多内容。如数据结构中位的概念,在负数表示中对于数据变化的理解,对于计算机数据溢出的理解,对于计算机各方面数据的思考,这些都与二进制的学习分不开。
计算机的很多硬件的结构也和二进制有关,特别是存储容量等与二进制密不可分。因此,我们一定要通过改进教学方式,提供丰富的生动的材料推进学生的学习。使他们形成坚实的二进制数感,为后续的继续深入学习计算机技术打下坚实的基础,并从中获得学习的快乐。
参 考 文 献
[1]汤鸣红,试析高职院校计算机专业教学的改革[J],常州信息职业技术学院学报,2009(4):21-23;
[2]曹平,论高职院校计算机教学模式改革[J],电子世界,2012(6):173。