1、算法初步第一章13算法案例第 2 课时进位制课前自主预习 1理解进位制的概念,能进行不同进位制间的转化2了解进位制的程序框图和程序进位制及进位制之间的转化(1)概念进位制是为了而约定的记数系统,约定“满几进一”就是几进制,几进制的基数(大于 1 的整数)就是计数和运算方便几(2)不同进位制之间的转化k 进制化为十进制的方法:anan1a1a0(k)(an,an1,a1,a0N,0ank,0an1,a1,a0k)十进制化为 k 进制的方法(3)常见的进位制二进制a只使用 0 和 1 两个数字;b满二进一,即 1110(2)anknan1kn1a1ka0除 k 取余法 八进制a使用 0,1,2,3
2、,4,5,6,7 这八个不同数字;b满八进一,即 7110(8)十六进制a使用 09 十个数字和 AF 表示 1015;bF110(16)判断正误(正确的打“”,错误的打“”)(1)二进制使用 0,1 两个数字,六进制使用 0,1,2,3,4,5 六个数字()(2)十进制数化为 k 进制数是采取除 k 取余法,即用 k 连续去除十进制数所得的商,最后将余数顺排写出()(3)k 进制数化为十进制数是把 k 进制数写成各位上的数字与k 的幂的乘积之和的形式,再计算出结果即可()提示(1)(2)(3)课堂互动探究 题型一k 进制数化为十进制数【典例 1】将下列各数化为十进制数.(1)11001000
3、(2);(2)310(8).思路导引 解答本题可按其他进制转化为十进制的方法,先写成不同位上的数乘以基数的幂的形式,再相加求和.解(1)11001000(2)127126025024123022021020200;(2)310(8)382181080200.将 k 进制数化为十进制数的方法先把k进制数写成各位上的数字与k的幂的乘积之和的形式,再按照十进制数的运算规则计算出结果.针对训练 1(1)101(2)转化为十进制数是()A2B5C20D101(2)下列最大数是()A110(2)B18C16(8)D20(5)解析(1)101(2)1220211205.(2)110(2)1221210206
4、;16(8)18168014;20(5)25105010.则最大数是 18.答案(1)B(2)B题型二把十进制数化为 k 进制数【典例 2】(1)把十进制数 89 化为二进制数.(2)将十进制数 21 化为五进制数.解(1)根据“满二进一”的原则,可以用 2 连续去除 89 所得商,然后取余数即除 2 取余法.用竖式表示为:891260251241230220211201011001(2)(2)同(1)用除 5 取余法可得:2141(5)十进制数化为 k 进制数(除 k 取余法)的步骤针对训练 2(1)把十进制数 15 化为二进制数为()A1011B1001(2)C1111(2)D1111(2
5、)把四进制数 13022 化为六进制数.解析(1)因为所以 151111(2),故 C 正确.(2)先把四进制数 13022 化为十进制数.13022(4)14434304224240256192082458.再把十进制数 458 化为六进制数.4582042(6).故 13022(4)2042(6)答案(1)C(2)2042(6)题型三不同进位制间的转化【典例 3】把五进制数 1234(5)转化为十进制数,再把它转化为八进制数思路导引 将 k 进制化十进制时,利用求各位上的数与 k的幂的乘积后再相加的方法,十进制化为 k 进制可采用除 k 取余法解 1234(5)15325235145019
6、4,而1234(5)194302(8)引申探究 1:(变条件)210(6)化成十进制数为_85 化成七进制数为_解析 210(6)2621678,所以 85151(7)答案 78 151(7)引申探究 2:(变结论)把 1234(5)化成七进制数为_解析 1234(5)153252351450194.而1234(5)194365(7)答案 365(7)两种非十进制之间的转化以十进制为中转站针对训练 3 将 53(8)转化为二进制数解 先将八进制数 53(8)转化为十进制数:53(8)58138043;再将十进制数 43 转化为二进制数:所以 53(8)101011(2)课堂归纳小结把一个非十进制数转化为另一种非十进制数,通常是把这个数先转化为十进制数,然后再利用除 k 取余法,把十进制数转化为 k 进制数而在使用除 k 取余法时要注意以下几点:(1)必须除到所得的商是 0 为止;(2)各步所得的余数必须从下到上排列;(3)切记在所求数的右下角标明基数.请做:随堂巩固验收