1.3案例(进位制).pptVIP

  • 2
  • 0
  • 约2.11千字
  • 约 15页
  • 2018-06-24 发布于河南
  • 举报
1.3案例(进位制)

* 一.进位制: 进位制是人们为了计数和运算的方便而约定的 记数系统. 如:约定满十进一,就是十进制,约定满二进一,就是 二进制,即约定满几进一,就是几进制. 二.常见的进位制有: 十进制,七进制,十二进制,六十进制,二进制,十六进制,等等. 注:这里的十、十六、六十等数字叫作该种进位制的基数。 问题1:十进制数4768中各个位置上的数字的含义 分别是什么呢? 4表示4个千,7表示7个百,6表示6个十,8表示8个一 即 4768=4×103+7×102+6×101+8×100 一般地,若k是一个大于1的整数,那么以k为基数 的k进制数可以表示为一串数字连写在一起的形式: 一般地,为了区分不同的进位制,常在数的右下角 标明基数,如七进制数12(7)、二进制数1101(2)等,十进制 数一般不用标出基数. 问题2:参照十进制数的表示方法思考,若要用一个七 进制数来表示一周又二天的总天数的话,这个 数应该是怎样的呢? 12(7) 这里的1表示1个七,2表示2个一 即12(7) =1×71+2×70 对任意的k进制数 总有 8周又3天呢? 113(7) =9 =59 = 1×72+1×71+3×70 如.110011(2) =1×25+ 1×24+ 0×23+ 0×22+ 1×21+ 1×20 例1.把下列各进制的数化为十进制。 (1) 10110(2)(2) 3321 (4) (3)412(5); 解: 10110(2)=1×24+ 0×23+ 1×22+ 1×21+ 0×20 =16+4+2 =22 3321 (4)=3×43+ 3×42+ 2×41+ 1×40 =3×64+3×16+2×4+1 =249 107 把一个n位的k进制数a化为10进制数b: 从练习可以知,计算k进制数a的右边第i位数字ai与ki-1的乘积ai*ki-1 ,再将其累加,这是一个重复操作的步骤,需用循环结构来构造算法。 a=anan-1… a3a2a1(k) =ank(n-1)+an-1k(n-2)+ … + a3k2 +a2k1+a1k0 b=a1k0 b=a2k1 +b b=a3k2 + b … b=ankn-1 +b i=i+1 i=1 b=aiki-1+b 把一个n位的k进制数a化为10进制数b: 从练习可以知,计算k进制数a的右边第i位数字ai与ki-1的乘积ai*ki-1 ,再将其累加,这是一个重复操作的步骤,需用循环结构来构造算法。 算法: S1 输入a,k和n的值 S2 将b的值初始化为0,i的值初始化1 S3 b=b+ai*ki-1,i=i+1 S4 判断in是否成立。若是,则执行第五步;否则,返回第三步。 S5 输出b的值 程序1: INPUT a, k, n i = 1 b = 0 t = a MOD 10 WHILE i = n b = b + t * k ^ (i-1) a = a \ 10 t = a MOD 10 i = i + 1 WEND PRINT b END 把一个n位的k进制数a化为10进制数b: 把一个n位的k进制数a化为10进制数b: 程序2: INPUT a, k, n i = n - 1 b = 0 WHILE i = 0 t = a \ 10 ^ i a = a MOD 10 ^ i b = b + t * k ^ i i = i - 1 WEND PRINT b END 例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 =1011001(2) 这种算法叫做除k取余法.(把十进制数化为k进制数) 例2.把89化为二进制数。 89 44 22 11 5 2 1 0 余数

文档评论(0)

1亿VIP精品文档

相关文档