进位制
2.了解进位制转换的程序框图和程序.
程序:
进位制
(1)概念:人们为了计数和运算方便而约定的记数系统,“满k进一”就是___进制,$k$是基数(其中$k$是大于1的整数).$k$进制的数可以表示为一串数字连写在一起的形式:$a_{n} a_{n-1} \cdots a_{1} a_{0(k)}\left(a_{n}, a_{n-1}, \cdots, a_{1}, a_{0} \in \mathbf{N} , \\ 0 < a_{n} < k, 0 \leqslant a_{n-1}, \cdots, a_{1}, a_{0} < k\right)$.
(2)非十进制的$k$进制数$a$(共有$n$位)化为十进制数$b$的算法步骤:
第一步,输入$a, k$和$n$的值.
第二步,将b的值初始化为0,$i$的值初始化为1.
第三步,$b=b+a_{i} \cdot k^{i-1}, i=i+1$.
第四步,判断____是否成立.若是,则执行第五步;否则,返回第三步.
第五步,输出$b$的值.
程序框图:
程序:
(3)十进制数$a$化为非十进制的$k$进制数$b$的算法是除$k$取余法.
算法步骤:
第一步,给定十进制正整数$a$和转化后的数的基数$k$.
第二步,求出___除以___所得的商$q$,余数r.
第三步,把得到的余数依次从___到___排列.
第四步,若$q \neq 0$,则$a=q$,返回第____步;否则,输出全部余数$r$排列得到的$k$进制数.
程序框图:
程序:
名师点拨教材中的算法案例进一步体现了编写程序的基本过程:
(1)算法分析,将解决实际问题的过程以步骤的形式用文字语言表述出来.
(2)画程序框图,把算法分析用程序框和流程线的形式表达出来.
(3)编写程序,将程序框图转化为算法语句即程序.
【做一做】 以下各数有可能是五进制数的是( )
$A$.15 $B$.106
$C$.731 $D$.21 340
答案:$D$
k进制数的特点
剖析:不妨把各种进制统称为$k$进制,则$k$进制数具有以下特点:
(1)具有$k$个数字符号,它们是$0,1,2, \cdots,(k-1)$.
(2)由低位到高位是按“逢$k$进一”的规则进行计数.
(3)基数是$k$.
(4)可以表示为一串数字连写在一起的形式,即$a_{n} a_{n-1} \cdots a_{1} a_{0(k)}\left(0 < a_{n} < k, 0 \leqslant a_{n-1}, \\ \cdots, a_{1}, a_{0} < k\right)$.
(5)与十进制类似,也可以用其基数的幂的形式表示,即$a_{n} a_{n-1} \cdots a_{1} a_{0(k)}=a_{n} × k^{n+}+a_{n-1} \\ × k^{n-1}+\cdots+a_{2} × k^{2}+a_{1} × k+a_{0}$
十进制数化为k进制数
【例1】 (1)将194化成八进制数;
(2)将48化成二进制数.
分析:除以$k$取余→倒序写出→标明基数
反思
1.将十进制数化成$k$进制数的方法是用“除$k$取余法”,用$k$连续去除十进制数或所得的商,直到商为零为止,然后将各步所得的余数倒序写出,即为相应的$k$进制数.
2.为了区分不同的进位制,常在数的右下角标明基数.十进制数一般不标注基数.
【变式训练1】 (1)将137转化为六进制的数;
(2)将96转化为五进制的数.
k进制数化为十进制数
【例2】 将下列各数化成十进制数.
$(1)11001000_{(2)};$ $(2)310_{(8)}$.
分析:解答本题可按其他进制转化为十进制的方法,先写成不同位上的数乘基数的幂的形式,再相加求和.
反思
k进制数化为十进制数:先把k进制数写成不同位上的数字与k的幂的乘积之和的形式,再按十进制数的运算规则计算出结果. .【变式训练2】 (1)将236(7)转化为十进制的数;
(2)将1032(4)转化为十进制的数.
不同进位制数间的互化
【例3】 把1234(5)转化为六进制数.
分析:五进制数和六进制数之间的互化需要借助十进制数来进行.
反思非十进制数直接利用公式$a_{n} a_{n-1} \cdots a_{1} a_{0(k)} \\ =a_{n} k^{n+} a_{n-1} k^{n-1}+\cdots+a_{1} k+a_{0}$
就可以转化为十进制数;$k$进制数和$m$进制数之间需要用十进制数来转化,即先把$k$进制数转化为十进制数,再利用除$m$取余法转化为$m$进制数.【变式训练3】 把八进制数$2016_{(8)}$化为五进制数.