辗转相除法与进制转换

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
这就是k进制数转化为十进制数的方法
例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.
2.将十进制数转化为k进制数的方法——除k取余法 用k连续去除该十进制各位数所得的商,直到商为零为止,然后 把每次所得的余数倒看成一个数就是相应k进制数.
将一个十进制数a化为k进制数b的步骤如下:
第一步:将给定的十进制整数,除以基数k,余数便是最低位;
第二步:将上一步的商再除以基数k,余数便是次低位;
辗转相除法(欧几里得算法)
观察用辗转相除法求8251和6105的最大公约数的过程
第一步 用两数中较大的数除以较小的数,求得商和余数 8251=6105×1+2146
结论: 8251和6105的公约数就是6105和2146的公约数,求8251和 6105的最大公约数,只要求出6105和2146的公约数就可以了。
牛刀小试:你会把三进制数10221(3)化为十进制数吗?
解:10221(3)=1×34+0×33+2×32+2×31+1×30 =81+18+6+1=106.
k进制数转化为十进制数的方法
(1)把k进制的数表示成不同位上数字与基数k的幂 的乘积之和的形式,即
anan-1…a1a0(k)
=an×kn+an-1×kn-1+…+a1×k1+a0×k0
(3)2010(8)=2×83+0×82+1×8+0=1024+8=1032.
(4)315(7)=3×72+1×7+5×70=147+7+5=159.
解密高手
【绝密文件】 为了确保信息安全,信息需要加密传输,发送 方由明文 密文(加密),接收方由密文 明文(解密),已知加密规则为:明文a,b,c,d 对应密文为的a,b,c,d九进制,当接收方收到密 文14,7,23,28时,解密得到的明文是什么? 明文:13,7,21,26
一般地,若k是一个大于1的整数,那么以k为 基数的k进制数可以表示为一串数字连写在一起 的形式 a ,..., a ,a N (a ,
n n 1 1 0
anan-1…a1a0(k) 0<an<k, 0≤an-1,…,a1,a0<k) k进制的数也可以表示成不同位上数字与 基数k的幂的乘积之和的形式,即 anan-1…a1a0(k)=an×kn+an-1×kn-1 +…+a1×k1+a0×k0 .
m=n×q+r
用程序框图表示出右边的过程
8251=6105×1+2146 6105=2146×2+1813 2146=1813×1+333
r=m MOD n
m=n
n=r r=0? 否
1813=333×5+148
333=148×2+37 148=37×4+0

练一练:使用辗转相除法求下列各数的最大
公约数。
十进制数3721中的3表示3个千,7表示7个百,2 表示2个十,1表示1个一,从而它可以写成下面 的形式: 3721=3×103+7×102+2×101+1×100. 想一想: 二进制数1011(2)

3421(5)
可以类似的写成什么形式?(类比思想) 1011(2)=1×23+0×22+1×21+1×20. 3421(5) =3×53+4×52+2×51+1×50.
=379(10). (2)235(7)=2×72+3×71+5×70 =124(10).
(3)
∴137=345(6).
(4)53(8)=5×81+3×80=43.
∴53(8)=1121(3).
思考题:
今天是星期二,再过 2011 (7) 天是星期几?
1813=333×5+148 333=148×2+37
148=37×4+0 显然37是148和37的最大公约 数,也就是8251和6105的最 大公约数
S1:用大数除以小数
S2:除数变成被除数,余数变成除数 S3:重复S1,直到余数为0
辗转相除法是一个反复执行直到余数等于0停止的步骤,这实际上是 一个循环结构。
进位制的概念: 进位制是人们为了计数和运算的方便而 约定的一种记数系统,约定满二进一,就是二 进制;满十进一,就是十进制;满六十进一,就 是六十进制;等等. “满几进一”,就是几进制,几进制的基数就是几.
如十进制可使用的数字有0,1,2,„,8,9等十个数字,基数是10; 类似:二进制可使用的数字有0和1,基数是2;三进制呢? 请同学们写一个四进制数?
解:(1)58(8)=5×81+8×80=48(10).
∴48=110000(2),即58(8)=110000(2).
(2)235(7)=2×72+3×7+5×70=124(10).
∴124=174(8),即235(7)=174(8).
规律技巧:k进制之间的转化,首先转化成十进制,再转化为k进
制.
1:12、16 2:72、168 3:612、468
4:840、1760
答案:4、24、36、40
进 位 制
解密高手
【绝密文件】 为了确保信息安全,信息需要加密传输,发送 方由明文 密文(加密),接收方由密文 明文(解密),已知加密规则为:明文a,b,c,d 对应密文为的a,b,c,d九进制,当接收方收到密 文14,7,23,28时,解密得到的明文是什么?
第二步 对6105和2146重复第一步的做法 6105=2146×2+1813 同理6105和2146的最大公约数也是2146和1813的最大公约数。
完整的过程
8251=6105×1+2146 6105=2146×2+1813 2146=1813×1+333
例2 用辗转相除法求225和135的最大公约数 225=135×1+90 135=90×1+45 90=45×2 显然45是90和45的最大公约数,也就是 225和135的最大公约数 思考1:从上面的两个例子可以看出计 算的规律是什么?
第三步:重复第二步,直到最后所得商为0,各次除得的余数,便 是k进制各位的数,最后一次的余数是最高位.
题型二 十进制化为k进制 例2:(1)将194化为八进制数; (2)将48化为二进制数.
解:(1)
∴194化为八进制数为302(8).
(2)
∴48化为二进制数为110000(2).
规律技巧:将十进制化为k进制的方法是:除k取余法,即用k连 续去除十进制数或所得的商,直到商为零为止,然后把各步 得到的余数倒着写出就是相应的k进制数.
(2)再按照十进制数的运算规则计算出结果.
例1:将下列各数化为十进制数. (1)1234(5); (2)11001(2); (3)2010(8); (4)315(7).
(1)1234(5)=1×53+2×52+3×51+4×50=125+50+15+4=194.
(2)11001(2)=1×24+1×23+0×22+0×2+1×20=16+8+1=25.
算 法 案 例
(辗转相除法)、(进制转换)
1、求两个正整数的最大公约数
(1)求25和35的最大公约数 (2)求49和63的最大公约数
( 1) 5
25
5
35
7
( 2) 7
49
百度文库63
7
9
所以,25和35的最大公约数为5
所以,49和63的最大公约数为7
2、求8251和6105的最大公约数


辗转相除法, 又名 “欧几里德算法” (Euclidean algorithm) 乃求两数之最大公因 数算法。它是已知最 欧 古老的算法, 其可追溯 几 至前300年。它首次出 里 现于欧几里德的《几 德 何原本》中,而在中 国则可以追溯至东汉 出现的《九章算术》。 它并不需要把二数作 质因数分解
变式训练2:填空:
403(5) (1)103化成五进制数为________;
310(4) (2)52化成四进制数为________.
题型三 进位制之间的互化
例3:
(1)将58(8)转化为二进制的数;
(2)将七进制数235(7)转化为八进制的数.
分析:先将非十进制数转化为十进制数,再向其它k进制数转化, 注意十进制数的中间作用.
变式训练3:(1)将101111011(2)转化为十进制的数; (2)将235(7)转化为十进制的数; (3)将137化为六进制的数; (4)将53(8)转化为三进制的数. 解:(1)101111011(2) =1×28+0×27+1×26+1×25+1×24+1×23+0×22+1×21+1
×20
进位制的表示方法:
为了区分不同的进位制,常在数字的右下脚标明基数.
如111001(2)表示二进制数,34(5)表示5进制数.
十进制数一般不标注基数.
牛刀小试
下列关于进位制的说法错误的是(
C)
A.进位制是人们为了计数和运算方便而约定的记数系统。 B.二进制就是满二进一,十进制就是满十进一。 C.满几进几,就是几进制,几进制的基数就是几。 D.为了区分不同的进位制,常在数的右下角标注基数。
相关文档
最新文档