§1.3.1-3算法案例(三)_图文

§1.3.1-3算法案例(三)

重庆市万州高级中学 曾国荣 wzzxzgr@163.com

§1.3.1-3算法案例(三)

学习目标
1.理解进位制的概念,对一个数能够做不同进制间的 转换. 2.根据对进位制的理解,体会计算机的计数原理. 3.了解进位制的程序框图及程序.

2013-1-24

重庆市万州高级中学 曾国荣 wzzxzgr@163.com

2

§1.3.1-3算法案例(三)

一、进位制的由来 人类在长期的生产劳动中创造了数字,为了方便读写和计 算,逐渐地产生了进位制.古罗马人采取60进制,玛雅人使用20 进制,中国、埃及、印度等国主要采取10进制.而近代由于计算 机的诞生,二进制应运而生. 计算机为何采用二进制?
1.二进制只有0和1两个数字,要得到表示两种不同稳定状 态的电子器件很容易,而且制造简单,可靠性高. 2.在各种计数中,二进制的算法逻辑简单,有布尔逻辑代数 做理论依据,简单的运算规则则使得机器内部的操作也变得简 单,如加法法则只有4条:0+0=0,0+1=1,1+0=1,1+1=10,而十进 制加法法则从0+0=0到9+9=18需要100条;乘法法则也是这样: 0×0=0,0×1=0,1×0=0,1×1=1,十进制的乘法法则要由一张 “九九表”来规定,比较复杂.
2013-1-24 重庆市万州高级中学 曾国荣 wzzxzgr@163.com 3

§1.3.1-3算法案例(三)

二、进位制的定义
进位制是人们为了计数和运算方便而约定的记数系统. 进位制是一种记数方式,用有限的数字在不同的位置表示不 同的数值.“满几进一几”就是几进制,几进制的基数就是几. 十进制数 3721 的意义

1.满10进1 2.每个数位上的数字都小于10(基数),取自0,1,2,3,4,5,6,7, 8,9(十个数字),首位不是0.
3721(10) ? 3 ? 103 ? 7 ? 102 ? 2 ? 101 ? 1 ? 100

不同位上的数字与基数的幂的乘积之和的形式
2013-1-24 重庆市万州高级中学 曾国荣 wzzxzgr@163.com 4

§1.3.1-3算法案例(三)

三、进位制的表示方法
二进制逢2进1,使用0和1两个数字
11011(2) ? 1 ? 25 ? 1 ? 24 ? 0 ? 23 ? 0 ? 22 ? 1 ? 21 ? 1 ? 20

八进制逢8进1,使用0~7两个数字
7342(8) ? 7 ? 83 ? 3 ? 82 ? 4 ? 81 ? 2 ? 80

k进制的数 anan?1an? 2 ? a2a1( 表示为: k)

an ? k n?1 ? an?1 ? k n? 2 ? ? ? a1 ? k 0 十进制数
(0 ? an ? k ,0 ? an?1 ,? , a1 ? k )

2013-1-24

重庆市万州高级中学 曾国荣 wzzxzgr@163.com

5

§1.3.1-3算法案例(三)

四、进位制间的转换 1、二进制数转化为十进制数 例1 (1)将二进制数110011化成十进制数
110011(2) ? 1 ? 25 ? 1 ? 24 ? 0 ? 23 ? 0 ? 22 ? 1 ? 21 ? 1 ? 20

? 1 ? 32 ? 1 ? 16 ? 1 ? 2 ? 1 ? 51(10)

所以,110011(2)=51. (2) 将六十进制数52014化成十进制数
52014(60) ? 5 ? 604 ? 2 ? 603 ? 0 ? 602 ? 1 ? 601 ? 4 ? 600

? 64800000 ? 432000 ? 0 ? 60 ? 4 ? 65232064(10)

2013-1-24

重庆市万州高级中学 曾国荣 wzzxzgr@163.com

6

§1.3.1-3算法案例(三)

k进制的数 anan?1an? 2 ? ai ? a2a1a0( k ) 转化位十进制数的算法

b ? an ? k n?1 ? an?1 ? k n? 2 ? ? ai ? k i ?1 ? ? ? a1 ? k 0
1.从右到左依次取k进制数各位上的数字,乘以相应k的幂 k的幂从0开始取值,每次增加1,递增到n 2.把得到的乘积加起来,所得的结果就是相应的十进制数.

算法:1.输入a,k和n的值 2.将b的值初始化为0,i的值初始化为1 ? 3.b=b+ai ki-1 , i=i+1 4.判断i>n是否成立.若是,输出b的值;否则,返回第3步.

2013-1-24

重庆市万州高级中学 曾国荣 wzzxzgr@163.com

7

算法: 程序框图 开始 1.输入a,k和n的值 输入a,k和n的值 2.b=0,i=1 3.b=b+ai ?ki-1 ,i=i+1 b=0 4.判断i>n是否成立.若是,输 出b的值;否则,返回第3步. i=1
INPUT “a,k,n=”;a,k,n b=0 DO 程序 t=a MOD 10 b=b+t*k^(i-1) a=a\10 i=i+1 LOOP UNTIL i>n PRINT b END
2013-1-24

§1.3.1-3算法案例(三)

把a的右边第i位数字赋给t
b ? b ? t ? k i ?1

i=i+1 i>n? Y 输出b 结束
8

N

重庆市万州高级中学 曾国荣 wzzxzgr@163.com

§1.3.1-3算法案例(三)

余数 2 89 44 2 1 例2 把89化为二进制数 2 22 0 除2取余法 89=2×44+1 11 0 2 =2×(2×22+0)+1 2 5 1 =2×(2×(2×11+0)+0)+1 2 2 1 =2×(2×(2×(2×5+1)+0)+0)+1 2 1 0 =2×(2×(2×(2×(2×2+1)+1)+0)+0)+1 0 1 =2×(2×(2×(2×(2×(2×1+0)+1)+1)+0)+0)+1 =1×26+0×25+1×24+1×23+0×22+0×21+1×20

2、十进制数转化为二进制数

所以:89=1011001(2) 1.最后一步商为0 2.将上式各步所得的余数从下到上排列,得到:89=1011001(2)
2013-1-24 重庆市万州高级中学 曾国荣 wzzxzgr@163.com 9

§1.3.1-3算法案例(三)

10进制转化为k进制

程序框图

开始 输入a,k 求a除以k的商q

1.输入a和基数k 2.求a除以k所得的商q和余数r INPUT “a,k=”;a,k 3.若q≠0,则a=q,返回第2步; b=0 否则,执行第4步 i=0 4.将依次得到的余数从右到左 DO 排列,得到k进制数. q=a\k r=a MOD k b=b+r*10^i i=i+1 a=q LOOP UNTIL q=0 PRINT b END
2013-1-24

求a除以k的余数r 输出r a=q N q=0? Y 将依次输出的r从右到左排列

结束
10

重庆市万州高级中学 曾国荣 wzzxzgr@163.com

§1.3.1-3算法案例(三)

课堂练习 <<教材>> P.45

练习3

书面作业
<<教材>> P.48 习题1.3 A组3 B组1

2013-1-24

重庆市万州高级中学 曾国荣 wzzxzgr@163.com

11


相关文档

人教版高中数学必修三课件 1.3算法案例(2)
数学必修三-算法案例(1.3)
人教版高中数学必修三 第一章1.3算法案例
人教版高中数学必修三课件 1.3《算法案例》
人教版高中数学必修三课件 第一章 1.3 算法案例
高中数学1.3算法案例(三)精品课堂同步练习试题
人教版高中数学必修三1.3算法案例—秦九韶算法ppt课件
人教版高中数学必修三 习题:第一章1.3算法案例
【精选】人教a版必修三分层训练:1.3算法案例(含答案)
学霸百科
电脑版 | 学霸百科