教育专题:12第2课时进位制.ppt
第2课时 进位制1.1.通过阅读进位制的算法案例,体会进位制的算法思想;通过阅读进位制的算法案例,体会进位制的算法思想;2.2.初步学会几种进位制之间地转换,初步理解几种进位初步学会几种进位制之间地转换,初步理解几种进位制之间制之间地地转换的算法思想;转换的算法思想;(重点重点)3.3.能运用几种进位制之间能运用几种进位制之间地地转换,解决一些有关的问题转换,解决一些有关的问题.(难点难点)进位制的由来进位制的由来 人类在长期的生产劳动中创造了数字人类在长期的生产劳动中创造了数字,为了方便读写为了方便读写和计算和计算,逐渐地产生了进位制逐渐地产生了进位制.古罗马人采取古罗马人采取6060进制进制,玛雅玛雅人使用人使用2020进制进制,中国、埃及、印度等国主要采取中国、埃及、印度等国主要采取1010进制,进制,而近代由于计算机的诞生而近代由于计算机的诞生,二进制应运而生二进制应运而生.计算机为何采用二进制?计算机为何采用二进制?1.1.二进制只有二进制只有0 0和和1 1两个数字两个数字,要得到表示两种不同稳定状态要得到表示两种不同稳定状态的电子器件很容易的电子器件很容易,而且制造简单而且制造简单,可靠性高可靠性高.2.2.在各种计数中在各种计数中,二进制的算法逻辑简单二进制的算法逻辑简单,有布尔逻辑代数做有布尔逻辑代数做理论依据理论依据,简单的运算规则使得机器内部的操作也变得简单简单的运算规则使得机器内部的操作也变得简单,如加法法则只有如加法法则只有4 4条:条:0+0=0,0+1=1,1+0=1,1+1=10,0+0=0,0+1=1,1+0=1,1+1=10,而十进制而十进制加法法则从加法法则从0+0=00+0=0到到9+9=189+9=18需要需要100100条条;乘法法则也是这样:乘法法则也是这样:0 00=0,00=0,01=0,11=0,10=0,10=0,11=1,1=1,十进制的乘法法则要由一张十进制的乘法法则要由一张“九九表九九表”来规定来规定,比较复杂比较复杂.进位制的概念进位制的概念 思考思考1:1:进位制是为了计数和运算方便而约定的记数系统,进位制是为了计数和运算方便而约定的记数系统,如逢十进一,就是十进制;每七天为一周,就是七进制;如逢十进一,就是十进制;每七天为一周,就是七进制;每十二个月为一年,就是十二进制;每六十秒为一分钟,每十二个月为一年,就是十二进制;每六十秒为一分钟,每六十分钟为一个小时,就是六十进制等等每六十分钟为一个小时,就是六十进制等等.一般地,一般地,“满满k k进一进一”就是就是k k进制,其中进制,其中k k称为称为k k进制的基数进制的基数.那么那么k k是一个是一个什么范围内的数?什么范围内的数?思考思考2:2:十进制使用十进制使用0 09 9十个数字,那么二进制、五进制、十个数字,那么二进制、五进制、七进制分别使用哪些数字?七进制分别使用哪些数字?思考思考3:3:在十进制中在十进制中1010表示十,在二进制中表示十,在二进制中1010表示表示2.2.一般一般地,若地,若k k是一个大于是一个大于1 1的整数,则以的整数,则以k k为基数的为基数的k k进制数可进制数可以表示为一串数字连写在一起的形式:以表示为一串数字连写在一起的形式:a an na an-1n-1a a1 1a a0(k)0(k).其中各个数位上的数字其中各个数位上的数字a an n,a an-1n-1,a a1 1,a a0 0的取值范围的取值范围如何?如何?思考思考4:4:十进制数十进制数4 5284 528表示的数可以写成表示的数可以写成4 410103 3+5+510102 2+2+210101 1+8+810100 0,依此类比,二进制数,依此类比,二进制数110 011110 011(2 2),八进制数八进制数 7 3427 342(8 8)分别可以写成什么式子?分别可以写成什么式子?110 011110 011(2 2)=1=12 25 5+1+12 24 4+0+02 23 3+0+02 22 2+1+12 21 1+1+12 20 07 3427 342(8 8)=7=78 83 3+3+38 82 2+4+48 81 1+2+28 80 0.思考思考5:5:一般地,如何将一般地,如何将k k进制数进制数a an na an-1n-1a a1 1a a0(k)0(k)写成各数位写成各数位上的数字与基数上的数字与基数k k的幂的乘积之和的形式?的幂的乘积之和的形式?a an na an-1n-1a a1 1a a0(k)0(k)=a=an nk kn n+a+an-1n-1k kn-1n-1+a+a1 1k k1 1+a+a0 0k k0 0k k进制化十进制的算法进制化十进制的算法例例1 1 把二进制数把二进制数110 011110 011(2 2)化为十进制数化为十进制数.解:解:110 011110 011(2 2)=1=12 25 5+1+12 24 4+0+02 23 3+0+02 22 2+1+12 21 1+1+12 20 0=32+16+2+1=51.=32+16+2+1=51.思考思考1:1:二进制数右数第二进制数右数第i位数字位数字a ai化为十进制数是什么数?化为十进制数是什么数?a ai2 2i-1-1已知已知1 0b11 0b1(2 2)=a02=a02(3 3),求数字求数字a a,b b的值的值.解:解:1 0b11 0b1(2 2)=1=12 23 3+b+b2+1=2b+9.2+1=2b+9.a02 a02(3 3)=a=a3 32 2+2=9a+2.+2=9a+2.所以所以2b+9=9a+22b+9=9a+2,即,即9a-2b=7.9a-2b=7.故故a=1a=1,b=1.b=1.例例2 2 设计一个算法,把设计一个算法,把k k进制数进制数a(a(共有共有n n位位)化为十进制数化为十进制数b.b.解:解:(1)(1)算法步骤算法步骤:第一步第一步,输入输入a,ka,k和和n n的值的值.第二步第二步,令令b=0b=0,i=1.=1.第三步第三步,b=b+ab=b+aik ki-1-1,i=i+1.+1.第四步第四步,判断判断in n 是否成立是否成立.若是,则输出若是,则输出b b的值;否则,返回的值;否则,返回第三步第三步.第五步第五步,输出输出b b的值的值.(2)(2)上述把上述把k k进制数进制数a=aa=an na an-1n-1a a2 2a a1(k)1(k)化为十化为十进制数进制数b b的算法的程序框的算法的程序框图如何表示?图如何表示?开始开始输入输入a,k,nb=0i=1把把a的右数第的右数第i位数字赋给位数字赋给tb=b+tki-1i=i+1in?结束结束是是输出输出b否否(3)(3)该程序框图对应的程序如何表述?该程序框图对应的程序如何表述?INPUTINPUT“a a,k k,n=n=”;a a,k k,n nb=0b=0i=1=1t=a MOD10t=a MOD10DODOb=b=b+tb+t*k*k(i-1-1)a=a10a=a10t=a MOD10t=a MOD10i=i+1+1LOOP UNTIL LOOP UNTIL innPRINT bPRINT bENDEND例例3 3 把把8989化为二进制数化为二进制数.解:解:根据二进制数根据二进制数“满二进一满二进一”的原则,可以用的原则,可以用2 2连续去连续去除除8989或所得商,然后取余数或所得商,然后取余数.具体计算方法如下:具体计算方法如下:因为因为 89=289=244+1,44+1,44=2 44=222+0,22+0,22=2 22=211+0,11+0,11=2 11=25+1,5+1,5=2 5=22+1,2+1,2=2 2=21+0,1+0,1=2 1=20+1,0+1,除除k k取余法取余法所以所以 89=289=2(2(2(2(2(2(2(2(22 2+1)+1)+0)+0)+1+1)+1)+0)+0)+1 =2 =2(2(2(2(2(2(2(2(22 2+1)+1)+0)+0)+1+1)+1)+0)+0)+1 =1 =12 26 6+0+02 25 5+1+12 24 4+1+12 23 3+0+02 22 2+0+02 21 1+1+12 20 0 =1 011 001 =1 011 001(2)(2)上述化十进制数为二进制数的算法叫做上述化十进制数为二进制数的算法叫做除除2 2取余法取余法,还可以用下面的除法算式表示:还可以用下面的除法算式表示:21222502112222442891001101余数余数短除法短除法将十进制数将十进制数458458分别转化为四进制数和六进制数分别转化为四进制数和六进制数.041474284114445822031余数余数06261267664582402余数余数解:解:458=13 022458=13 022(4 4)=2 042=2 042(6 6)例例4 4 设计一个程序,实现设计一个程序,实现“除除k k取余法取余法”(k kN N,2 2k k9 9).解:第一步解:第一步,输入十进制数输入十进制数a a和基数和基数k k的值的值.第二步第二步,求出求出a a除以除以k k所得的商所得的商q q,余数,余数r.r.第三步第三步,把所得的余数依次从右到左排列把所得的余数依次从右到左排列.第四步第四步,若若q0q0,则,则a=qa=q,返回第二步;否则,输出全部余数,返回第二步;否则,输出全部余数r r排排列得到的列得到的k k进制数进制数.程序框图:程序框图:开始开始输入输入a,k 求求a除以除以k的商的商q求求a除以除以k的余数的余数r把所得的余数依次从右到左排列把所得的余数依次从右到左排列a=qq=0?结结 束束输出全部余数输出全部余数r排排列得到的列得到的k k进制数进制数是是否否程序:程序:INPUT aINPUT a,k kb=0b=0i=0=0DODO q=ak q=ak r=a MOD k r=a MOD k b=b=b+rb+r*10*10i i=i+1+1 a=q a=qLOOP UNTIL q=0LOOP UNTIL q=0PRINT bPRINT bENDEND将五进制数将五进制数30 24130 241(5 5)转化为七进制数转化为七进制数.30 24130 241(5 5)=3=35 54 4+2+25 52 2+4+45+1=1 946.5+1=1 946.075739727871 9460545余数余数30 24130 241(5 5)=5 450=5 450(7 7)1.1.完成下列进位制之间的转化:完成下列进位制之间的转化:(1 1)10 23110 231(4 4)=(1010);(2 2)235235(7 7)=(1010);(3 3)137137(1010)=(6 6);(4 4)1 2311 231(5 5)=(7 7).3013013453451241243623622.2.二进制数二进制数101 101 101101(2 2)化为十进制数是什么数?化为十进制数是什么数?【解析解析】101 101101 101(2 2)=2=25 5+2+23 3+2+22 2+1=45.+1=45.3.3.试将试将10 10110 101(2)(2)化成十进制数化成十进制数.【解析解析】10 10110 101(2)(2)=1=12 24 4+0+02 23 3+1+12 22 2+0+02+12+1=16+4+1=21.=16+4+1=21.10 10110 101(2)(2)=21.=21.1 1进位制是一种记数方式,用有限的数字在不同的位进位制是一种记数方式,用有限的数字在不同的位置表示不同的数值置表示不同的数值.可使用数字符号的个数称为基数,可使用数字符号的个数称为基数,基数为基数为k k,即可称,即可称k k进位制,简称进位制,简称k k进制进制.k.k进制需要使用进制需要使用k k个数字个数字.2 2k k进制数转化为十进制数的方法:进制数转化为十进制数的方法:先把这个先把这个k k进制数写成用各位上的数字与进制数写成用各位上的数字与k k的幂的乘积之和的幂的乘积之和的形式,再按照十进制数的运算规则计算出结果的形式,再按照十进制数的运算规则计算出结果.3 3十进制数转化为十进制数转化为k k进制数的方法:(除进制数的方法:(除k k取余法)取余法)用用k k连续去除该十进制数或所得的商,直到商为零为连续去除该十进制数或所得的商,直到商为零为止,然后把每次所得的余数倒着排成一个数,就是相应止,然后把每次所得的余数倒着排成一个数,就是相应的的k k进制数进制数.要想利用风驰电掣的机会,不仅要做好物质上的准备,更重要的是要做好精神上的准备.