..算法案例--进位制【DOC精选】.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
..算法案例--进位制【DOC精选】

高二学案—1.3.3算法案例—进位制 课标要求:了解各种进位制与十进制之间转换的规律,会利用各种进位制与十进制之间的联系进行各种进位制之间的转换。 学习重点:各进位制表示数的方法及各进位制之间的转换。 一.复习引入 在日常生活中,我们最熟悉、最常用的是十进制,据说这与古人曾以手指计数有关,爱好天文学的古人也曾经采用七进制、十二进制、六十进制,至今我们仍然使用一周七天、一年十二个月、一小时六十分的历法.今天我们来学习一下进位制进一”就是进制,其中称为进制的基数.那么是一个什么范围内的数? 思考2:十进制使用0~9十个数字,那么二进制、五进制、七进制分别使用哪些数字? 思考3:在十进制中10表示十,在二进制中10表示2.一般地,若是一个大于1的整数,则以为基数的进制数可以表示为一串数字连写在一起的形式:思考4:十进制数4528表示的数可以写成,依此类比,二进制数,八进制数 分别可以写成什么式子? 思考5:一般地,如何将进制数 写成各数位上的数字与基数的幂的乘积之和的形式? 思考6:在二进制中,0+0,0+1,1+0,1+1的值分别是多少? 探究二: 进制化十进制的算法 思考1:【例3】二进制数110011(2)化为十进制数是什么数? 思考2:二进制数右数第i位数字化为十进制数是什么数? 思考3:【例4】运用循环结构,把二进制数 化为十进制数b的算法步骤如何设计? 算法分析:从例的计算过程可以看出,计算k进制数a的右数第i位数字ai与ki-1的乘积ai·ki-1,再将其累加,这是一个重复操作的步骤.所以,可以用循环结构来构造算法. 算法步骤如下: 第一步,输入a,k和n的值. 第二步,将b的值初始化为0,i的值初始化为1. 第三步,b=b+ai·ki-1,i=i+1. 第四步,判断i>n是否成立.若是,则执行第五步;否则,返回第三步. 第五步,输出b的值. 程序框图如图 其中各个数位上的数字 , ,…,,的取值范围如何? 探究三:除取余法 思考1:二进制数101101(2)化为十进制数是什么数?【例5】十进制数89化为二进制数是什么数? 解:根据二进制数“满二进一”的原则,可以用2连续去除89或所得商,然后取余数.具体计算方法如下: 因为89=2×44+1,44=2×22+0, 22=2×11+0, 11=2×5+1, 5=2×2+1, 2=2×1+0, 1=2×0+1, 所以89=2×(2×(2×(2×(2×2+1)+1)+0)+0)+1 =2×(2×(2×(2×(22+1)+1)+0)+0)+1 =…=1×26+0×25+1×24+1×23+0×22+0×21+1×20 =1 011 001(2). 思考2:上述化十进制数为二进制数的算法叫做除2取余法,转化过程有些复杂,观察下面的算式你有什么发现吗? 把上式中各步所得的余数从下到上排列,得到89=1 011 001(2). 进制数的算法,称为除取余法。 十进制数191化为五进制数是什么数? 思考4:根据上面分析,【例6】利用除取余法,将十进制数a化为进制数的算法步骤如何设计? 算法分析:从例的计算过程可以看出如下的规律: 若十制数a除以k所得商是q0,余数是r0,即a=k·q0+r0,则r0是a的k进制数的右数第1位数. 若q0除以k所得的商是q1,余数是r1,即q0=k·q1+r1,则r1是a的k进制数的左数第2位数. …… 若qn-1除以k所得的商是0,余数是rn,即qn-1=rn,则rn是a的k进制数的左数第1位数. 这样,我们可以得到算法步骤如下: 第一步,给定十进制正整数a和转化后的数的基数k. 第二步,求出a除以k所得的商q,余数r. 第三步,把得到的余数依次从右到左排列. 第四步,若q≠0,则a=q,返回第二步;否则,输出全部余数r排列得到的k进制数. 取余法的算法步骤用程序框图如何表示? 程序框图如图:1)理解算法与进位制的关系. (2)熟练掌握各种进位制之间转化 INPUT “a,k=”;a,k b=0 i=0 DO q=a\k r=a MOD k b=b+r*10^i i=i+1 a=q LOOP UNTIL q=0 PRINT b END 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

文档评论(0)

taotao0c + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档