算法案例--进位制.ppt

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
式中1处在百位,第一个3所在十位,第二个3所在个位,5和9分别处在十分位和百分位。十进制数是逢十进一的。 1.进位制是一种记数方式,用有限的数字在不同的位置表示不同的数值。可使用数字符号的个数称为基数,基数为k,即可称k进位制,简称k进制。k进制需要使用k个数字; 3.十进制数转化为k进制数的方法:(除k取余法) 用k连续去除该十进制数或所得的商,直到商为零为止,然后把每次所得的余数倒着排成一个数,就是相应的k进制数。 INPUT a,n,k b=0 i=1 DO t=a MOD 10 b=b+t*k^ (i-1) a=a\10 i=i+1 LOOP UNTIL in PRINT b END 思考:如果不知道k进制数a有n位,那么用什么条件来控制循环 十进制数化k进制数的方法: 除k取余法(从下到上) 练习: 将137转化成6进制数为: 将38转化成2进制数为: * 算法案例 ——进位制 一、进位制 1、什么是进位制? 进位制是人们为了计数和运算方便而约定的记数系统。 进位制是一种记数方式,用有限的数字在不同的位置表示不同的数值。可使用数字符号的个数称为基数,基数为n,即可称n进位制,简称n进制。 新课讲解: 比如: 满二进一,就是二进制; 满十进一,就是十进制; 满十二进一,就是十二进制; 满六十进一,就是六十进制 “满几进一”就是几进制,几进制的基数就是几. 基数: 2、最常见的进位制是什么?除此之外还有哪些常见的进位制?请举例说明. 最常见的进位制应该是我们数学中的十进制,比如一般的数值计算,但是并不是生活中的每一种数字都是十进制的. 古人有半斤八两之说,就是十六进制与十进制的转换. 比如时间和角度的单位用六十进位制, 计算“一打”数值时是12进制的。 电子计算机用的是二进制 。 我们最常用最熟悉的就是十进制数,它的数值部分是十个不同的数字符号0,1,2,3,4,5,6,7,8,9来表示的。 十进制: 例如133.59,它可用一个多项式来表示: 133.59=1*102+3*101+3*100 +5*10-1+9*10-2 实际上,十进制数只是计数法中的一种,但它不是唯一 记数法。除了十进制数,生产生活中还会遇到非十进制的 记数制。如时间:60秒为1分,60分为1小时,它是六十进 制的。两根筷子一双,两只手套为一副,它们是二进制的。 其它进制: 二进制、七进制、八进制、十二进制、 六十进制…… 二进制只有0和1两个数字,七进制用0~6七个数字 十六进制有0~9十个数字及ABCDEF六个字母. 为了区分不同的进位制,常在数的右下角标明基数,十进制一般不标注基数. 例如十进制的133.59,写成133.59(10) 七进制的13,写成13(7);二进制的10,写成10(2) 一般地,若k是一个大于1的整数,那么以k 为基数的k进制可以表示为一串数字连写在一起 的形式: A 3、十进制的构成 十进制由两个部分构成 例如:3721 其它进位制的数又是如何的呢? 第一、它有0~9十个数字; 第二、它有“数位”,即从右往左为个位、十位、百位、千位等等。 (用10个数字来记数,称基数为10) 表示有:1个1,2个十, 7个百即7个10的平方,3个千即3个10的立方 十进制:“满十进一” 探究:P43 其它进制数化成十进制数公式 二、 二进制 二进制是用0、1两个数字来描述的.如11001 二进制的表示方法 区分的写法:11001(2)或者(11001)2 八进制呢? 如7342(8) k进制呢? anan-1an-2…a1(k)? 三、二进制与十进制的转换 1、二进制数转化为十进制数 例1:将二进制数110011(2)化成十进制数。 解: 根据进位制的定义可知 所以,110011(2)=51. 其它进制数化成十进制数公式 1、将下面的二进制数化为十进制数? (1)11 (2)110 练习 2、把其他进位制的数化为十进制数的公式是什么? 例2、设计一个算法,将k进制数a(共有n位)转换为十进制数b。 (1)算法步骤: 第一步,输入a,k和n的值; 第二步,将b的值初始化为0,i的值初始化为1; 第三步,b=b+ai*ki-1, i=i+1 第四步,判断in是否成立.若是,则执行第五步,否则,返回第三步; 第五步,输出b的值. (2)程序框图: 开始 输入a,k,n b=0 i=1 把a的右数第i位数字赋给t b=b+t*ki-1 i=i+1 in? 否 是 输出b 结束 (3)程序: INPUT “a,k,n=”;a,k,n b=0 i=1 t=a MOD 10 DO b=b+t*k^(i-1)

文档评论(0)

shaoye348 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档