算法案例三二进制复习回顾上节课我们讲解了算法的应用:求最大公约数的两种方法,下面我们再来看看:新课导入:一、进位制1、什么是进位制?2、最常见的进位制是什么?除此之外还有哪些常见的进位制?请举例说明.进位制是人们为了计数和运算方便而约定的记数系统。问题1、我们了解十进制吗?所谓的十进制,它是如何构成的?解答:十进制由两个部分构成。第一、它有0、1、2、3、4、5、6、7、8、9十个数字;(用10个数字来记数,称基数为10);第二、它有“权位”,即从右往左为个位、十位、百位、千位等等。例如:3721表示有:1个1,2个十,7个百即7个10的平方,3个千即3个10的立方,其它进位制的数又是如何的呢?问题二、二进制(1)二进制的表示方法二进制是用0、1两个数字来描述的。如11001等区分的写法:11001(2)或者(11001)28进制呢?如7342(8)k进制呢?anan-1an-2…a2a1(k)?二、二进制与十进制的转换1、二进制数转化为十进制数例1将二进制数110011(2)化成十进制数解:根据进位制的定义可知1012345)2(21212020212111001112116132151所以,110011(2)=51。练习将下面的二进制数化为十进制数?2、十进制转换为二进制(除2取余法:用2连续去除89或所得的商,然后取余数)例2把89化为二进制数解:根据“逢二进一”的原则,有89=2×44+1=2×(2×22+0)+1=2×(2×(2×11+0)+0)+1=2×(2×(2×(2×5+1)+0)+0)+1=2×(2×(2×(2×(2×2+1)+1)+0)+0)+1方法二:略练习将下面的十进制数化为二进制数?(1)10(2)20(3)128(4)256=2×(2×(2×(2×(22+1)+1)+0)+0)+189=1×26+0×25+1×24+1×23+0×22+0×21+1×20所以:89=1011001(2)=2×(2×(2×(23+2+1)+0)+0)+1=2×(2×(24+22+2+0)+0)+1=2×(25+23+22+0+0)+1=26+24+23+0+0+21所以89=2×(2×(2×(2×(2×2+1)+1)+0)+0)+12(1)11(2)111(3)1111(4)1111189=2×44+144=2×22+022=2×11+011=2×5+15=2×2+13、十进制转换为其它进制例3:把89化为五进制数解:根据除k取余法,以5作为除数,相应的除法算式所以,89=324(5)例题4:将k进制数a转换为十进制数(共有n位)的程序解:a=anan-1…a3a2a1(k)=ank(n-1)+an-1k(n-2)+…+a3k2+a2k1+a1k0b=a1k0b=a2k1+bb=a3k2+b……b=ankn-1+bi=1i=i+1b=aiki-1+bai=GETa[i]GET函数用于取出a的右数第i位数小结与作业1、进位制的概念2、掌握二进制与十进制之间的转换3INPUTa,k,ni=1b=0WHILEi<=nt=GETa[i]b=t*k^(i-1)+bi=i+1WENDPRINTbEND