数学:1.3.3《算法案例-进位制)》课件(1)(新人教A版必修3)

时间:2025-04-23

案例3 进位制

[问题1]我们常见的数字都是十进制的, 但是并不是生活中的每一种数字都是十进制的. 比如时间和角度的单位用六十进位制,电子计 算机用的是二进制.那么什么是进位制?不同的 进位制之间又有什么联系呢? 进位制是人们为了计数和运算的方便而 约定的一种记数系统,约定满二进一,就是二 进制;满十进一,就是十进制;满十六进一,就 是十六进制;等等. “满几进一”,就是几进制,几进制的基数就是几. 可使用数字符号的个数称为基数.基数 都是大于1的整数.

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

十进制数一般不标注基数.

[问题2]十进制数3721中的3表示3个千,7表示7 个百,2表示2个十,1表示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.

一般地,若k是一个大于1的整数,那么以k为 基数的k进制数可以表示为一串数字连写在一起 的形式 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 注意这是一 1+a ×k0 . 个n+1位数. +…+a1×k 0

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

那么二进制数与十进制数之间是如 何转化的呢?

例1:把二进制数110011(2)化为十进制数. 分析:先把二进制数写成不同位上数字与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.

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

设计一个算法,把k进制数a(共有n位数)转 开始 化成十进制数b。 程序框图算法步骤: s1,输入a,b,n的值。 s2,赋值b=0,i=

1。 s3,b=b+ai·i-1,i=i+1。 ks4,判断i>n是否成立。若 是,则执行s5;否则, 返回s3。 s5,输出b的值。输入a,k,n b=0 i=1

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

N

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

输入a,k,n b=0

i=1把a的右数第i位数字赋给t b=b+t·i-1 k 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

例2:把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, 22=11×2+0, 11=5×2+1, 5=2×2+1, 2=1×2+0, 1=0×2+1,

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

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

设计一个程序,实现“除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所得的余数q把所得的余数依次从右到左排列

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

[问题5]你会把三进制数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).

…… 此处隐藏:634字,全部文档内容请下载后查看。喜欢就下载吧 ……
数学:1.3.3《算法案例-进位制)》课件(1)(新人教A版必修3).doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219