9512.net
甜梦文库
当前位置:首页 >> 初一语文 >>

高中数学必修3 1.3.3算法案例(进位制)(z)


案例3 案例3

进位制

[问题 我们常见的数字都是十进制的 但是并不是 问题1]我们常见的数字都是十进制的 问题 我们常见的数字都是十进制的,但是并不是 生活中的每一种数字都是十进制的.比如时间和 生活中的每一种数字都是十进制的 比如时间和 角度的单位用六十进位制,电子计算机用的是二 角度的单位用六十进位制 电子计算机用的是二 进制.那么什么是进位制 那么什么是进位制?不同的进位制之间又有 进制 那么什么是进位制 不同的进位制之间又有 什么联系呢? 什么联系呢

进位制是人们为了计数和运算的方便而 进位制是人们为了计数和运算的方便而 约定的一种记数系统,约定满二进一,就是二 约定的一种记数系统,约定满二进一 就是二 进制;满十进一 就是十进制;满十六进一 满十进一,就是十进制 满十六进一,就是 进制 满十进一 就是十进制 满十六进一 就是 十六进制;等等 等等. 十六进制 等等 可使用数字符号的个数称为基数 基数都 可使用数字符号的个数称为基数.基数都 基数 是大于1的整数 的整数. 是大于 的整数
“满几进一”,就是几进制 几进制的基数就是 满几进一” 就是几进制 满几进一 就是几进制,几进制的基数就是 几.

1、我们了解十进制吗?所谓的十进制,它是 、我们了解十进制吗?所谓的十进制, 如何构成的? 如何构成的? 第一、它有0、 、 、 、 、 、 、 、 、 第一、它有 、1、2、3、4、5、6、7、8、 9十个数字用10个数字来记数,称基数为10) 十个数字; 个数字来记数, 基数为 十个数字; 个数字来记数 (用 第二、它有“权位” 从右往左为个位 为个位、 第二、它有“权位”,即从右往左为个位、 十位、百位、千位等等。 十位、百位、千位等等。 例如: 例如:3721 表示有: 个 , 个十 个十, 个百即 个百即7个 的平 表示有:1个1,2个十, 7个百即 个10的平 个千即3个 的立方 方,3个千即 个10的立方 个千即

3721 = 3×10 + 7×10 + 2×10 +1×10
3 2 1

0

其它进位制的数又是如何的呢? 其它进位制的数又是如何的呢?

基数是 如二进制可使用的数字有 和1,基数是2; 二进制可使用的数字有0和 基数 可使用的数字有 八进制可使用的数字有 可使用的数字有0 八进制可使用的数字有 , 1 , 2 , … , 6 , 7等 等 基数是 八个数字,基数 八个数字 基数是8; 十六进制可使用的数字或符号有 ~ 9等10 十六进制可使用的数字或符号有0 等 可使用的数字或符号有 个数字以及A 个字母(规定字母 个数字以及 ~ F等6个字母 规定字母 ~ F对 等 个字母 规定字母A 对 十六进制的基数 应10~15),十六进制的基数是16. 十六进制的基数是 注意:为了区分不同的进位制 常在数字的右 注意 为了区分不同的进位制,常在数字的右 为了区分不同的进位制 下脚标明基数. 下脚标明基数 表示二进制数,34 表示5进制数 进制数. 如111001(2)表示二进制数 (5)表示 进制数 十进制数一般不标注基数. 十进制数一般不标注基数

[问题 十进制数 问题2]十进制数 中的3表示 个千,7表示 问题 十进制数3721中的 表示 个千 表示 中的 表示3个千 表示7 个百,2表示 个十,1表示 个一,从而它 表示2个十 表示1个一 个百 表示 个十 表示 个一 从而它 可以写成下面的形式: 可以写成下面的形式 3721=3×103+7×102+2×101+1×100. × × × × 想一想二进制数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. × ×

一般地,若 是一个大于 的整数,那么以 是一个大于1的整数 那么以k 一般地 若k是一个大于 的整数 那么以 为基数的k进制数可以表示为一串数字连写 为基数的 进制数可以表示为一串数字连写 在一起的形式 anan-1…a1a0(k) (0<an<k,0≤an-1,…,a1,a0<k)
意思是:(1)第一个数字 n不能等于 第一个数字a 不能等于0; 意思是 第一个数字 (2)每一个数字 n,an-1,…,a1,a0都须小于 每一个数字a 都须小于k. 每一个数字

anan-1…a1a0(k)=an×kn+an-1×kn-1 +…+a1×k1+a0×k0 .
注意这是一个n+1位数 位数. 注意这是一个 位数

[问题 二进制只用 和1两个数字 这正好 问题3]二进制只用 两个数字,这正好 问题 二进制只用0和 两个数字 与电路的通和断两种状态相对应,因此 与电路的通和断两种状态相对应 因此 计算机内部都使用二进制.计算机在进 计算机内部都使用二进制 计算机在进 行数的运算时,先把接受到的数转化成 行数的运算时 先把接受到的数转化成 二进制数进行运算,再把运算结果转化 二进制数进行运算 再把运算结果转化 为十进制数输出. 为十进制数输出 那么二进制数与十进制数之间是如何 转化的呢? 转化的呢

把二进制数110011(2)化为十进制数 化为十进制数. 例1:把二进制数 把二进制数
分析:先把二进制数写成不同位上数字与 分析 先把二进制数写成不同位上数字与 2的幂的乘积之和的形式 再按照十进制数的 的幂的乘积之和的形式,再按照十进制数的 的幂的乘积之和的形式 运算规则计算出结果. 运算规则计算出结果 解:110011(2) =1×25+1×24+0×23+0×22+1×21+1×20 × × × × × × =1×32+1×16+1×2+1=51. × × ×
思考:你会把三进制数 化为十进制数吗? 思考:你会把三进制数10221(3)化为十进制数吗

解:10221(3)=1×34+0×33+2×32+2×31 × × × × +1×30 =81+18+6+1=106. ×

k进制数转化为十进制数的方法 进制数转化为十进制数的方法
先把k进制的数表示成不同位上数字 先把 进制的数表示成不同位上数字 与基数k的幂的乘积之和的形式 的幂的乘积之和的形式,即 与基数 的幂的乘积之和的形式 即 anan-1…a1a0(k) =an×kn+an-1×kn-1+…+a1×k1+a0×k0 . 再按照十进制数的运算规则计算出结果. 再按照十进制数的运算规则计算出结果

设计一个算法, 进制数a(共有n位数 位数) 设计一个算法,把k进制数 (共有 位数)转 进制数 化成十进制数b。 化成十进制数 。 开始 算法步骤: 算法步骤: s1,输入 ,b,n的值。 的值。 ,输入a, , 的值 s2,赋值 ,赋值b=0,i=1。 , 。 s3,b=b+ai·ki-1,i=i+1。 , 。
s4,判断i>n是否成立。若 ,判断 是否成立 是否成立。 则执行s5;否则, 是,则执行 ;否则, 返回s3。 返回 。 s5,输出 的值。 的值。 ,输出b的值
输入a,k,n 输入 b=0 i=1 把a的右数第 位数字赋给 的右数第i位数字赋给 的右数第 位数字赋给t b=b+t·ki-1 i=i+1 i>n? Y 输出b 输出
结束

N

设计一个算法, 进制数a(共有n位数 位数) 设计一个算法,把k进制数 (共有 位数) 进制数 转化成十进制数b。 转化成十进制数 。
开始

输入a,k,n 输入 b=0 i=1 把a的右数第 位数字赋给 的右数第i位数字赋给 的右数第 位数字赋给t b=b+t·ki-1 i=i+1 i>n? Y 输出b 输出
结束

N

程序: 程序 INPUT “a,k,n=”;a,k,n b=0 i=1 t=amod10 DO b=b+t*k^(i-1) * a=a\10 t=amod10 i=i+1 LOOP UNTIL i>n PRINT b END

练习: 练习:1、将下列各进制数化为十进制数. 将下列各进制数化为十进制数. (1)10303(4) ; (2)1234(5). =1× +3× +3× 10303(4)=1×44+3×42+3×40=307. =1× +2× +3× +4× 1234(5)=1×53+2×52+3×51+4×50=194.

2、 已知 、 已知10b1(2)=a02 (3),求数字 ,b的值 求数字a, 的值 的值. 求数字 10b1(2)=1×23+b×2+1=2b+9. × × a02(3)=a×32+2=9a+2. × 所以2b+9=9a+2,即9a-2b=7. 所以 , 故a=1,b=1. ,

化为五进制的数. 例2:把89化为五进制的数 把 化为五进制的数
作为除数,相应的运算式为 解:以5作为除数 相应的运算式为 以 作为除数 相应的运算式为: 89 = 5 × 17 + 4 = 5 × (5 × 3 + 2) + 4 = 3 × 52 + 2 × 5 + 4 = 324(5)
5 89 5 17 5 3 0 余数 4 2 3

∴ 89=324(5).

化为二进制的数. 例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). × × × × 但如果数太大,我们是无法这样凑出来的 怎么 但如果数太大 我们是无法这样凑出来的,怎么 我们是无法这样凑出来的 办?
89=44×2+1, 44=22×2+0, × × 11=5×2+1, × 2=1×2+0, × 22=11×2+0, × 5=2×2+1, × 1=0×2+1, ×

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, × × 89=44×2+1, × 可以用2连续去除 连续去除89 可以用 连续去除 或所得商(一直到商为 或所得商 一直到商为 =(22×2+0)×2+1 × × 0为止 然后取余数 为止),然后取余数 为止 =((11×2+0)×2+0)×2+1 × × × ---除2取余法 ---除2取余法. 取余法. =(((5×2+1)×2+0)×2+0)×2+1 × × × × =((((2×2+1)×2+1)×2+0)× 2+0)×2+1 × × × × × =(((((1×2)+0)×2+1)×2+1)×2+0)× 2+0)×2+1 × × × × × × =1×26+0×25+1×24+1×23+0×22+0×21+1×20 × × × × × × × =1011001(2).

2、十进制转换为二进制 、
方法: 取余法, 连续去除89或所得的商 方法:除2取余法,即用 连续去除 或所得的商,然后取余数。 取余法 即用2连续去除 或所得的商,然后取余数。 例、 把89化为二进制数 化为二进制数 解: 根据“逢二进一”的原则, 根据“逢二进一”的原则,有 89=2×44+1 = 89=2×44+1 = = 2× (2×22+0)+1 44= 2×22+0 = × + = 2×( 2×( 2×11+0)+0)+1 22= 2×11+0 × + = 2× (2× (2× (2× 5+1)+0)+0)+1 11= 2× 5+1 × + = 2× (2× (2× (2× (2× 2+1)+1)+0)+0)+1 5= 2× 2+1 × + 所以89= × )+0)+ )+1 所以 =2×(2×(2×(2×(2 × 2 +1)+1)+ )+ )+ × × × )+ )+0)+ )+0)+ )+1 =2×(2×(2×(2×(22+1)+1)+ )+ )+ × × × × )+ )+0)+ )+0)+ =2×(2×(2×(23+2+1)+0)+ )+ × × × )+ )+1 )+1 =2×(2×(24+22+2+0)+0)+ × × )+ =2×(25+23+22+0+0)+1 × =26+24+23+0+0+20 89=1×26+0×25+1×24+1×23+0×22+0×21+1×20 = × × × × × × × 所以: 所以:89=1011001(2) )

化为二进制的数. 例3:把89化为二进制的数 把 化为二进制的数
我们可以用下面的除法算式表示除2取余法 我们可以用下面的除法算式表示除 取余法: 取余法
2 89 2 44 2 22 2 11 2 5 2 2 21 0 余数 1 0 0 1 1 0 1 把算式中各步所得的余 从下到上排列,得到 数从下到上排列 得到 89=1011001(2). 可以用2连续去除 连续去除89或所得 可以用 连续去除 或所得 一直到商为0为止 商(一直到商为 为止 然后 一直到商为 为止),然后 取余数---除 取余法 取余法. 取余数 除2取余法 这种方法也可以推广为把 十进制数化为k进制数的 十进制数化为 进制数的 算法,称为 称为除 取余法 取余法. 算法 称为除k取余法

设计一个程序,实现 实现“ 取余法” 例4 设计一个程序 实现“除k取余法” 取余法 步骤: 步骤: s1,给定十进制正整数 和转化后的数的基数 和转化后的数的基数k. ,给定十进制正整数a和转化后的数的基数 s2,求出 除以 所得的商 ,余数 除以k所得的商 ,求出a除以 所得的商q,余数r. s3,把得到的余数依次从右到左排列 ,把得到的余数依次从右到左排列. s4,若q=0则输出全部余数 排列得到的 进制数; 则输出全部余数r排列得到的 进制数; , 则输出全部余数 排列得到的k进制数 否则a=q,返回 否则 ,返回s2.

开始

输入a,k 输入 求出a除以 所得的商 求出 除以k所得的商 除以 所得的商q 求出a除以 所得的余数 求出 除以k所得的余数 除以 所得的余数r
把所得的余数依次从右到左排列

a=q q=0?
Y
输出全部余数r排列得到的 进制数 输出全部余数 排列得到的k进制数 排列得到的

N

结束

程序: 程序 INPUT “a,k=”;a,k b=0 i=0 DO q=a\k r=aMODk b=b+r﹡10^i ﹡ i=i+1 a=q LOOP UNTIL q=0 PRINT b END

练习: 将十进制数458 458分别转化为四进 练习: 将十进制数458分别转化为四进 制数和六进制数. 制数和六进制数.
4 4 4 4 4 458 114 28 7 1 0 余数 2 2 0 3 1 458 6 6 76 6 12 6 2 0 余数 2 4 0 2

458=13022(4)=2042(6)

你会把三进制数10221(3)化为二进 思考 你会把三进制数 制数吗? 制数吗
第一步:先把三进制数化为十进制数 解:第一步 先把三进制数化为十进制数 第一步 先把三进制数化为十进制数: 10221(3)=1×34+0×33+2×32+2×31+1×30 × × × × × =81+18+6+1=106. 第二步:再把十进制数化为二进制数 第二步 再把十进制数化为二进制数: 再把十进制数化为二进制数

106=1101010(2). ∴10221(3)=106=1101010(2).

练习:将五进制数30241 练习:将五进制数30241(5)转化为七进 制数. 制数.

30241(5) =3×54+2×52+4×5+1=1946. =3× +2× +4×
7 1946 7 278 7 39 7 5 0 余数 0 5 4 5

30241(5)=5450(7)

练习: 练习: 完成下列进位制之间的转化: 完成下列进位制之间的转化: (1)10231(4)= ) ) (2)235(7)= ) ) (3)137(10)= ) ) (4)1231(5)= ) ) (5)213(4)= ) ) (6)1010111(2)= ) )
(10); ) (10); ) (6); ) (7); ) (3); ) (4)。 )


赞助商链接

更多相关文章:
6.示范教案(1.3 算法案例)
6.示范教案(1.3 算法案例)_数学_高中教育_教育专区。1.3 算法案例 整体设计...第 3 课时 案例 3 进位制 导入新课 情境导入 在日常生活中,我们最熟悉、最...
河南省确山县第二高级中学高中数学 1.3 算法案例 第一...
河南省确山县第二高级中学高中数学 1.3 算法案例 第一课时 辗转相除法与更相减损术说课稿 新人教 A 版必修 3 各位老师:大家好! 一花一世界,一叶一菩提,今天...
更多相关标签:

All rights reserved Powered by 甜梦文库 9512.net

copyright ©right 2010-2021。
甜梦文库内容来自网络,如有侵犯请联系客服。zhit325@126.com|网站地图