人教版高中数学必修三1.3.3《进位制》优质课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
字与2的幂的乘积之和的形式,再按照十进 制数的运算规则计算出结果. 解:110011(2)
=1×25+1×24+0×23+0×22+1×21+1×20 =1×32+1×16+1×2+1=51.
[问题4]你会把三进制数10221(3)化为十进制数吗?
解:10221(3)=1×34+0×33+2×32+2×31 +1×30 =81+18+6+1=106.
anan-1…a1a0(k) (0<an<k,0≤an-1,…,a1,a0<k)
意思是:(1)第一个数字an不能等于0; (2)每一个数字an,an-1,…,a1,a0都须小于k. k进制的数也可以表示成不同位上数字与 基数k的幂的乘积之和的形式,即
anan-1…a1a0(k)=an×kn+an-1×kn-1 注意这是一 +…+a1×k1+a0×k0 . 个n+1位数.
想一想二进制数1011(2)可以类似的写 成什么形式?
1011(2)=1×23+0×22+1×21+1×20. 同理: 3421(5)=3×53+4×52+2×51+1×50.
C7A16(16)=12×164+7×163+10×162 +1×161+6×160.
一般地,若k是一个大于1的整数,那么以k为基数 的k进制数可以表示为一串数字连写在一起的形式
s2,赋值b=0,i=1。
i=1
s3,b=b+ai·ki-1,i=i+1。 把a的右数第i位数字赋给t
s4,判断i>n是否成立。若 是,则执行s5;否则,
b=b+t·ki-1
返回s3。
i=i+1
s5,输出b的值。
N i>n?
Y 输出b
结束
设计一个算法,把k进制数a(共有n 位数)转化成十进制数b。
十六进制;等等. “满几进一”,就是几进制,几进制的基数就是几.
可使用数字符号的个数称为基数.
基数都是大于1的整数.
如二进制可使用的数字有0和1,基数是2; 十进制可使用的数字有0 , 1 , 2 , … , 8 , 9等 十个数字,基数是10; 十六进制可使用的数字或符号有0 ~ 9等10 个数字以及A ~ F等6个字母(规定字母A ~ F对应 10~15),十六进制的基数是16.
k进制数转化为十进制数的方法
先把k进制的数表示成不同位上数字 与基数k的幂的乘积之和的形式,即
anan-1…a1a0(k) =an×kn+an-1×kn-1+…+a1×k1+a0×k0 . 再按照十进制数的运算规则计算出结果.
例2:把89化为五进制的数. 解:以5作为除数,相应的运算式为:
89 = 5 17 + 4 = 5 (5 3 + 2) + 4 = 3 52 + 2 5 + 4 = 324(5)
但如果数太大,我们是无法这样凑出来的,怎么办?
89=44×2+1, 44=22×2+0, 22=11×2+0, 11=5×2+1, 5=2×2+1, 2=1×2+0, 1=0×2+1,
设计一个算法,把k进制数a(共有n位数)转
化成十进制数b。 算法步骤:
s1,输入a,b,n的值。
开始
输入a,k,n b=0
[问题1]我们常见的数字都是十进制的,但是并 不是生活中的每一种数字都是十进制的.比 如时间和角度的单位用六十进位制,电子计 算机用的是二进制.那么什么是进位制?不 同的进位制之间又有什么联系呢?
进位制是人们为了计数和运算的方便而约定的 一种记数系统,约定满二进一,就是二进制; 满十进一,就是十进制;满十六进一,就是
把所得的余数依次从右到左排列
a=q q=0? N
Y
输出全部余数r排列得到的k进制数
结束
程序: INPUT “a,k=”;a,k b=0 i=0 DO
这种方法也可以推广为把 十进制数化为k进制数的 算法,称为除k取余法.
例3:把89化为二进制的数.
分析:把89化为二进制的数,需想办法将 89先写成如下形式
89=an×2n+an-1×2n-1+…+a1×21+a0×20 .
89=64+16+8+1=1×26+0×25+1×24 +1×23+0×22+0×21+1×20 =1011001(2).
例4 设计一个程序,实现“除k取余法”
步骤: s1,给定十进制正整数a和转化后的数的基数k. s2,求出a除以k所得的商q,余数r. s3,把得到的余数依次从右到左排列. s4,若q=0则输出全部余数r排列得到的k进制数;
否则a=q,返回s2.
开始
输入a,k
求出a除以k所得的商q
求出a除以k所得的余数r
[问题3]二进制只用0和1两个数字,这正好 与电路的通和断两种状态相对应,因此 计算机内部都使用二进制.计算机在进 行数的运算时,先把接受到的数转化成 二进制数进行运算,再把运算结果转化 为十进制数输出.
那么二进制数与十进制数之间是 如何转化的呢?
例1:把二进制数110011(2)化为十进制数. 分析:先把二进制数写成不同位上数
5 89 5 17 53
0
余数
4 2 3
∴ 89=324(5).
例3:把89化为二进制的数.
我们可以用下面的除法算式表示除2取余法:
2 89
2 44 2 22 2 11 25
22 21
0
余数
1 0 0 1 1 0 1
把算式中各步所得的余 数从下到上排列,得到
89=1011001(2). 可以用2连续去除89或所得 商(一直到商为0为止),然后 取余数---除2取余法.
注意:为了区分不同的进位制,常在数字的 右下脚标明基数.
如111001(2)表示二进制数,34(5)表示5进制数.
十进制数一般不标注基数.
[问题2]十进制数3721中的3表示3个千,7 表示7个百,2表示2个十,1表示1个 一,从而它可以写成下面的形式:
3721=3×103+7×102+2×101+1×100.
开始
只需要验证 1101(2)化 成十进制就 OK了。
输入a,k,n b=0 i=1
把a的右数第i位数字赋给t
b=b+t·ki-1i=i+1i>n?
N
Y 输出b
结束
程序: INPUT “a,k,n=”;a,k,n b=0 i=1 t = a mod 10 DO b= b+t*k^(i-1) a= a\10 t=a mod 10 i=i+1 LOOP UNTIL i>n PRINT b END
=1×25+1×24+0×23+0×22+1×21+1×20 =1×32+1×16+1×2+1=51.
[问题4]你会把三进制数10221(3)化为十进制数吗?
解:10221(3)=1×34+0×33+2×32+2×31 +1×30 =81+18+6+1=106.
anan-1…a1a0(k) (0<an<k,0≤an-1,…,a1,a0<k)
意思是:(1)第一个数字an不能等于0; (2)每一个数字an,an-1,…,a1,a0都须小于k. k进制的数也可以表示成不同位上数字与 基数k的幂的乘积之和的形式,即
anan-1…a1a0(k)=an×kn+an-1×kn-1 注意这是一 +…+a1×k1+a0×k0 . 个n+1位数.
想一想二进制数1011(2)可以类似的写 成什么形式?
1011(2)=1×23+0×22+1×21+1×20. 同理: 3421(5)=3×53+4×52+2×51+1×50.
C7A16(16)=12×164+7×163+10×162 +1×161+6×160.
一般地,若k是一个大于1的整数,那么以k为基数 的k进制数可以表示为一串数字连写在一起的形式
s2,赋值b=0,i=1。
i=1
s3,b=b+ai·ki-1,i=i+1。 把a的右数第i位数字赋给t
s4,判断i>n是否成立。若 是,则执行s5;否则,
b=b+t·ki-1
返回s3。
i=i+1
s5,输出b的值。
N i>n?
Y 输出b
结束
设计一个算法,把k进制数a(共有n 位数)转化成十进制数b。
十六进制;等等. “满几进一”,就是几进制,几进制的基数就是几.
可使用数字符号的个数称为基数.
基数都是大于1的整数.
如二进制可使用的数字有0和1,基数是2; 十进制可使用的数字有0 , 1 , 2 , … , 8 , 9等 十个数字,基数是10; 十六进制可使用的数字或符号有0 ~ 9等10 个数字以及A ~ F等6个字母(规定字母A ~ F对应 10~15),十六进制的基数是16.
k进制数转化为十进制数的方法
先把k进制的数表示成不同位上数字 与基数k的幂的乘积之和的形式,即
anan-1…a1a0(k) =an×kn+an-1×kn-1+…+a1×k1+a0×k0 . 再按照十进制数的运算规则计算出结果.
例2:把89化为五进制的数. 解:以5作为除数,相应的运算式为:
89 = 5 17 + 4 = 5 (5 3 + 2) + 4 = 3 52 + 2 5 + 4 = 324(5)
但如果数太大,我们是无法这样凑出来的,怎么办?
89=44×2+1, 44=22×2+0, 22=11×2+0, 11=5×2+1, 5=2×2+1, 2=1×2+0, 1=0×2+1,
设计一个算法,把k进制数a(共有n位数)转
化成十进制数b。 算法步骤:
s1,输入a,b,n的值。
开始
输入a,k,n b=0
[问题1]我们常见的数字都是十进制的,但是并 不是生活中的每一种数字都是十进制的.比 如时间和角度的单位用六十进位制,电子计 算机用的是二进制.那么什么是进位制?不 同的进位制之间又有什么联系呢?
进位制是人们为了计数和运算的方便而约定的 一种记数系统,约定满二进一,就是二进制; 满十进一,就是十进制;满十六进一,就是
把所得的余数依次从右到左排列
a=q q=0? N
Y
输出全部余数r排列得到的k进制数
结束
程序: INPUT “a,k=”;a,k b=0 i=0 DO
这种方法也可以推广为把 十进制数化为k进制数的 算法,称为除k取余法.
例3:把89化为二进制的数.
分析:把89化为二进制的数,需想办法将 89先写成如下形式
89=an×2n+an-1×2n-1+…+a1×21+a0×20 .
89=64+16+8+1=1×26+0×25+1×24 +1×23+0×22+0×21+1×20 =1011001(2).
例4 设计一个程序,实现“除k取余法”
步骤: s1,给定十进制正整数a和转化后的数的基数k. s2,求出a除以k所得的商q,余数r. s3,把得到的余数依次从右到左排列. s4,若q=0则输出全部余数r排列得到的k进制数;
否则a=q,返回s2.
开始
输入a,k
求出a除以k所得的商q
求出a除以k所得的余数r
[问题3]二进制只用0和1两个数字,这正好 与电路的通和断两种状态相对应,因此 计算机内部都使用二进制.计算机在进 行数的运算时,先把接受到的数转化成 二进制数进行运算,再把运算结果转化 为十进制数输出.
那么二进制数与十进制数之间是 如何转化的呢?
例1:把二进制数110011(2)化为十进制数. 分析:先把二进制数写成不同位上数
5 89 5 17 53
0
余数
4 2 3
∴ 89=324(5).
例3:把89化为二进制的数.
我们可以用下面的除法算式表示除2取余法:
2 89
2 44 2 22 2 11 25
22 21
0
余数
1 0 0 1 1 0 1
把算式中各步所得的余 数从下到上排列,得到
89=1011001(2). 可以用2连续去除89或所得 商(一直到商为0为止),然后 取余数---除2取余法.
注意:为了区分不同的进位制,常在数字的 右下脚标明基数.
如111001(2)表示二进制数,34(5)表示5进制数.
十进制数一般不标注基数.
[问题2]十进制数3721中的3表示3个千,7 表示7个百,2表示2个十,1表示1个 一,从而它可以写成下面的形式:
3721=3×103+7×102+2×101+1×100.
开始
只需要验证 1101(2)化 成十进制就 OK了。
输入a,k,n b=0 i=1
把a的右数第i位数字赋给t
b=b+t·ki-1i=i+1i>n?
N
Y 输出b
结束
程序: INPUT “a,k,n=”;a,k,n b=0 i=1 t = a mod 10 DO b= b+t*k^(i-1) a= a\10 t=a mod 10 i=i+1 LOOP UNTIL i>n PRINT b END