1.3算法案例--进位制
(1)教学目标
(a)知识与技能
了解各种进位制与十进制之间转换的规律,会利用各种进位制与十进制之间的联系进行各种进位制之间的转换。
(b)过程与方法
学习各种进位制转换成十进制的计算方法,研究十进制转换为各种进位制的除k去余法,并理解其中的数学规律。
(c)情态与价值
领悟十进制,二进制的特点,了解计算机的电路与二进制的联系,进一步认识到计算机与数学的联系。
(2)教学重难点
重点:各进位制表示数的方法及各进位制之间的转换
难点:除k去余法的理解以及各进位制之间转换的程序框图的设计
(3)学法与教学用具
学法:在学习各种进位制特点的同时探讨进位制表示数与十进制表示数的区别与联系,熟悉各种进位制表示数的方法,从而理解十进制转换为各种进位制的除k去余法。
教学用具:电脑,计算器,图形计算器
(4)教学设想
(一)创设情景,揭示课题
我们常见的数字都是十进制的,但是并不是生活中的每一种数字都是十进制的.比如时间和角度的单位用六十进位制,电子计算机用的是二进制.那么什么是进位制 不同的进位制之间又又什么联系呢
(二)研探新知
进位制是一种记数方式,用有限的数字 ( http: / / zh.wikipedia.org / wiki / %E6%95%B0%E5%AD%97" \o "数字 )在不同的位置表示不同的数值。可使用数字符号的个数称为基数,基数为n,即可称n进位制,简称n进制。现在最常用的是十进制 ( http: / / zh.wikipedia.org / wiki / %E5%8D%81%E8%BF%9B%E5%88%B6" \o "十进制 ),通常使用10个阿拉伯数字 ( http: / / zh.wikipedia.org / w / index.php title=%E9%98%BF%E6%8B%89%E4%BC%AF%E6%95%B8%E5%AD%97&action=edit" \o "阿拉伯數字 )0-9进行记数。
对于任何一个数,我们可以用不同的进位制来表示。比如:十进数 ( http: / / zh.wikipedia.org / wiki / %E5%8D%81%E8%BF%9B%E5%88%B6" \o "十进制 )57,可以用二进制 ( http: / / zh.wikipedia.org / wiki / %E4%BA%8C%E8%BF%9B%E5%88%B6" \o "二进制 )表示为111001,也可以用八进制 ( http: / / zh.wikipedia.org / wiki / %E5%85%AB%E8%BF%9B%E5%88%B6" \o "八进制 )表示为71、用十六进制 ( http: / / zh.wikipedia.org / wiki / %E5%8D%81%E5%85%AD%E8%BF%9B%E5%88%B6" \o "十六进制 )表示为39,它们所代表的数值都是一样的。
表示各种进位制数一般在数字右下脚加注来表示,如111001(2)表示二进制数,34(5)表示5进制数.
电子计算机一般都使用二进制,下面我们来进行二进制与十进制之间的转化
例1 把二进制数110011(2)化为十进制数.
解:110011=1*25+1*24+0*23+1*24+0*22+1*21+1*20
=32+16+2+1
=51
例2 把89化为二进制数.
解:根据二进制数满二进一的原则,可以用2连续去除89或所得商,然后去余数.
具体的计算方法如下:
89=2*44+1
44=2*22+0
22=2*11+0
11=2*5+1
5=2*2+1
所以:89=2*(2*(2*(2*(2*2+1)+1)+0)+0)+1
=1*26+0*25+1*24+1*23+0*22+0*21+1*20
=1011001(2)
这种算法叫做除2取余法,还可以用下面的除法算式表示:
把上式中的各步所得的余数从下到上排列即可得到89=1011001(2)
上述方法也可以推广为把十进制化为k进制数的算法,这种算法成为除k取余法.
当数字较小时,也可直接利用各进位制表示数的特点,都是以幂的形式来表示各位数字,比如2*103表示千位数字是2,所以可以直接求出各位数字.即把89转换为二进制数时,直接观察得出89与64最接近故89=64*1+25
同理:25=16*1+9
9=8*!+1
即89=64*1+16*1+8*!+1=1*26+1*24+1*23+1*20
位数 6 5 4 3 2 1 0
数字 1 0 1 1 0 0 1
即89=1011001(2)
练习:(1)把73转换为二进制数
(2)利用除k取余法把89转换为5进制数
把k进制数a(共有n位)转换为十进制数b的过程可以利用计算机程序来实现,语句为:
INPUT a,k,n
i=1
b=0
WHILE i<=n
t=GET a[i]
b=b+t*k^(i-1)
i=i+1
WEND
PRINT b
END
练习:(1)请根据上述程序画出程序框图.
参考程序框图:
(2)设计一个算法,实现把k进制数a(共有n位)转换为十进制数b的过程的程序中的GET函数的功能,输入一个正5位数,取出它的各位数字,并输出.
小结:
(1)进位制的概念及表示方法
(2)十进制与二进制之间转换的方法及计算机程序
(5)评价设计
作业:P38 A(4)
89
44
22
11
5
2
1
2
2
2
2
2
2
2
0
余数
1
0
0
1
1
0
1
PAGE