- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
设计一个算法,把k进制数a(共有n位数)转化成十进制数b。 算法步骤: s1,输入a,b,n的值。 s2,赋值b=0,i=1。 s3,b=b+ai·ki-1,i=i+1。 s4,判断in是否成立。若是,则执行s5;否则,返回s3。 s5,输出b的值。 设计一个算法,把k进制数a(共有n位数)转化成十进制数b。 设计一个程序,实现“除k取余法” 步骤: s1,给定十进制正整数a和转化后的数的基数k。 s2,求出a除以k所得的商q,余数r。 s3,把得到的余数依次从右到左排列。 s4,若q=0则输出全部余数r排列得到的k进制数; 否则a=q,返回s2。 小结 进位制的概念及表示方法; 各种进位制之间的相互转化. * 案例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) (0ank,0≤an-1,…,a1,a0k) 意思是:(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位数. [问题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 . 再按照十进制数的运算规则计算出结果. 开始 输入a,k,n b=0 i=1 把a的右数第i位数字赋给t b=b+t·ki-1 i=i+1 in? 输出b 结束 Y N 程序框图 开始 输入a,k,n b=0 i=1 输出b 结束 把a的右数第i位数字赋给t b=b+t·ki-1 i=i+1 in? Y 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 in PRINT b
文档评论(0)