课程内容
《算法案例—进位制》
知识探究(一):进位制的概念
思考1:进位制是为了计数和运算方便而约定的记数系统,如逢十进一,就是十进制;每七天为一周,就是七进制;每十二个月为一年,就是十二进制,每六十秒为一分钟,每六十分钟为一个小时,就是六十进制;等等。一般地,“满k进一”就是k进制,其中k称为k进制的基数,那么k是一个什么范围内的数?
思考2:十进制使用0-9十个数字,那么二进制、五进制、七进制分别使用哪些数字?
思考3:在十进制中10表示十,在二进制中10表示2。一般地,若k是一个大于1的整数,则以k为基数的k进制数可以表示为一串数字连写在一起的形式:
anan-1…a1a0(k)
其中各个数位上的数字an,an-1,…,a1,a0的取值范围如何?
思考4:十进制数4528表示的数可以写成4×103+5×102+2×101+8×100,以此类比,二进制数110011(2),八进制数7342(8)分别可以写成什么式子?
知识探究(二):k进制化十进制
思考1:二进制数110011(2)化为十进制数是什么数?
练习:将下列各进制数化为十进制数。
(1)10303(4) (2)1234(5)
思考2:二进制数右数第i位数字ai化为十进制数是什么数?
思考3:利用anan-1…a2a1(2)=an×2n-1+an-1×2n-2+…+a2×21+a×20
运用循环结构,把二进制数a=anan-1…a2a1(2)化为十进制数b的算法步骤如何设计?
思考4:按照上述思路,把k进制数a=anan-1…a2a1(k)化为十进制数b的算法步骤如何设计?
思考5:上述把k进制数a=anan-1…a2a1(k)化为十进制数b的算法的程序框图如何表示?
思考6:该程序框图对应的程序如何表述?
知识探究(三):十进制化k进制——除k取余法
思考1:二进制数101101(2)化为十进制数是什么数?十进制数89化为二进制数是什么数?
思考2:上述方法也可以推广为把十进制数化为k进制数的算法,称为除k取余法,那么十进制数191化为五进制数是什么数?
练习:将十进制数458分别转化为四进制数和六进制数。
思考3:若十进制数a除以2所得的商是q0,余数是r0,即a=2·q0+r0;
q0除以2所得的商是q1,余数是r1,即q0=2·q1+r1;
……
qn-1除以2所得的商是0,余数是rn,即qn-1=rn,
那么十进制数a化为二进制数是什么数?
知识探究(四):十进制化k进制的算法
思考1:根据上面的分析,将十进制数a化为二进制数的算法步骤如何设计?
思考2:利用除k取余法,将十进制数a化为k进制数的算法步骤如何设计?
思考3:将除k取余法的算法步骤用程序框图如何表示?
思考4:该程序框图对应的程序如何表述?
此内容正在抓紧时间编辑中,请耐心等待
常老师
女,中教中级职称
从教30年,数学教研组长,省级“先进教育工作者”、优秀教师,市级骨干教师、“教学标兵”。