nbhkdz.com冰点文库

1.3-3K进制化十进制

时间:2017-01-14


1.3

算法案例
第三课时

问题提出

1.辗转相除法和更相减损术,是求两 个正整数的最大公约数的算法,秦九韶 算法是求多项式的值的算法,将这些算 法转化为程序,就可以由计算机来完成 相关运算.

2.人们为了计数和运算方便,约定了 各种进位制,这些进位制是什么概念, 它们与十进制之间是怎样转化的?对此, 我们从理论上作些了解和研究.

知识探究(一):进位制的概念

思考1:进位制是为了计数和运算方便而 约定的记数系统,如逢十进一,就是十 进制;每七天为一周,就是七进制;每 十二个月为一年,就是十二进制,每六 十秒为一分钟,每六十分钟为一个小时, 就是六十进制;等等.一般地,“满k进 一”就是k进制,其中k称为k进制的基数. 那么k是一个什么范围内的数?

如二进制可使用的数字有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:十进制使用0~9十个数字,那么 五进制、七进制分别使用哪些数字?

思考3:在十进制中10表示十,在二进制 中10表示2.一般地,若k是一个大于1的 整数,则以k为基数的k进制数可以表示 为一串数字连写在一起的形式: anan-1?a1a0(k). 其中各个数位上的数字an,an-1,?,a1, a0的取值范围如何?

练习:下列写法正确的是: ( A ) A、751 (16) B、751 (7) C、095 (12) D、901 (2)

一般地,若k是一个大于1的整数,那么以k 为基数的k进制可以表示为一串数字连写在一起 的形式:

anan?1 ?a1a0(k ) (0 ? an ? k,0 ? an?1,?, a1, a0 ? k ).

思考4:十进制数4528表示的数可以写成 4×103+5×102+2×101+8×100,依此类 比,二进制数110011(2),八进制数 7342(8)分别可以写成什么式子? 110011(2) =1×25+1×24+0×23+0×22+1×21+1×20 7342(8)=7×83+3×82+4×81+2×80.

思考5:探究:P43
若an an?1 ? a1a0( k ) 表示一个k 进制数,请你把它写成各位 上数字与k的幂的乘积之和的形式。

an an ?1 ? a1a0( k ) ? an ? k ? an ?1 ? k
n n ?1

? ? ? a1 ? k ? a0 ? k
1

0 (10)

其它进制数化成十进制数公式 思考6:在二进制中,0+0,0+1,1+0, 1+1的值分别是多少?

知识探究(二):k进制化十进制的算法

思考1:二进制数110011(2)化为十进制 数是什么数? 110011(2) =1×25+1×24+0×23+0×22+1×21+1×20 =32+16+2+1=51.
练习:C7A16(16)=12×164+7×163+10×162 +1×161+6×160.=817686

思考2:二进制数右数第i位数字ai化为十 进制数是什么数? i - 1

ai ? 2

思考3:利用

anan - 1 L a2a1(2) = an ? 2

n- 1

an - 1 ? 2

n- 2

L + a2 ? 2

1

a1 ? 2

0

运用循环结构,把二进制数 a = anan - 1 L a2a1(2) 化为十进制数b的算法步骤如何设计?

第一步,输入a和n的值. 第二步,令b=0,i=1.
i- 1

第三步, b = b + ai ? 2 ,i=i+1. 第四步,判断i>n 是否成立.若是,则输 出b的值;否则,返回第三步.

思考4:按照上述思路,把k进制数 a = anan - 1 L a2a1(k ) 化为十进制数b的算法 步骤如何设计?

第一步,输入a,k和n的值. 第二步,令b=0,i=1.
第三步, b = b + ai ? k
i- 1

,i=i+1.

第四步,判断i>n 是否成立.若是,则 输出b的值;否则,返回第三步.

思考5:上述把 k进制数

开始

输入a,k,n

a = anan - 1 L a2a1(k ) 化为十进制数 b的算法的程 序框图如何表 示?

b=0
i=1

把a的右数第i位数字赋给t
b=b+t· k i- 1 i=i+1

i>n?
是 输出b 结束



思考6:该程序框图对应的程序如何表述?
开始

输入a,k,n

b=0
i=1 把a的右数第i位数字赋给t b=b+t· k i- 1 i=i+1 i>n? 否 是 输出b 结束

INPUT a,k,n b=0 i=1 t=a MOD10 DO b=b+t*k∧(i-1) a=a\10 t=a MOD10 i=i+1 LOOP UNTIL i>n PRINT b END

**上面的程序如采用get函数,可简化为:
INPUT a,k,n i=1 b=0 WHILE i<=n t=GET a[i] b=t*k^(i-1)+b i=i+1 WEND PRINT b END

备注:GET函数用于取出a的右数第i位数

理论迁移

例1 将下列各进制数化为十进制数. (1)10303(4) ; (2)1234(5). 10303(4)=1×44+3×42+3×40=307. 1234(5)=1×53+2×52+3×51+4×50=194.

例2 已知10b1(2)=a02(3),求数字a, b的值.
10b1(2)=1×23+b×2+1=2b+9. a02(3)=a×32+2=9a+2. 所以2b+9=9a+2,即9a-2b=7.

故a=1,b=1.

小结作业

1. k进制数使用0~(k-1)共k个数 字,但左侧第一个数位上的数字(首位 数字)不为0. 2.用 anan - 1 L a2a1(k ) 表示k进制数,其 中k称为基数,十进制数一般不标注基数. 3. 把k进制数化为十进制数的一般算 式是:
anan - 1 L a2a1(k ) = an ? k n - 1 an - 1 ? k n - 2 L + a2 ? k 1 a1 ? k 0

作业: 课外阅读:P45割圆术 P48习题1.3B组:1.


赞助商链接

十进制数与十六进制数的转换方法

十进制数 23785 转为十六进制,则用 23785/16=1486 余 9,1486/16=92 ...^1 + A * 16^2 + 2 * 16^3 = 10997 二进制的 1101 转化十进制 ...

1.3.3进制转换导学案 2

1 ,?, a1 , a 0 的取值范围如何? 知识探究(三):除 k 取余法 思考 1:二进制数 101101(2)化为十进制数是什么数?十进制数 89 化为二进制数是什么 数...

十进制转化十六进制

字串 9 生活中还有:七进制,比如星期。十六 进制,比如小时或“打”,六十进制,比如分钟或角度…… 字串 7 字串 3 6.1 为什么需要 八进制和十六进制? 字串 ...

十进制,二进制,十三进制,十六进制转化

十进制,二进制,十三进制,十六进制转化_自然科学_专业资料。小数,整数转化二...1 4 千 2 (8) 133 (2197) 163 (4096) 1 3 百 2 (4) 132 (169) ...

二进制转十进制简便方法

即为二进制数所对应的十进制数 8 + 4 + 1 + 0.25 + 0.125 =13.375 即:(1101.011)2 = (13.375)10 在实际的换算过程中,同学们只要直接写出第三步,...

二进制数转换成十进制数

进制数转换成十进制数 二进制的 1101 转化十进制 1101(2)=1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8=13 转化十进制要从右到左用二进制的每个数...

十进制转化二进制实验报告

2、实验内容 本课程设计主要解决完成数制转化问题。完成功能如下: 1)任意给十进制的数; 2)完成十进制到二进制的数制转换; 3)本课程设计使用数组解决,用栈...

1 十六进制数1000转换成十进制数是__

1 十六进制数1000转换成十进制数是___电力/水利_工程科技_专业资料。1 十六...(D) 直接 3、 3 英寸的软盘,写保护窗口上有个滑块,将滑块推向一侧,使写...

八进制化为十进制

8 = 1×8 + 2×8 + 6×8 = ( 10.75) 10 )) 八进制化为二进制 规则:按照顺序 , 规则 :按照顺序,每 1 位八进制数改写成等值的 3 位 二进制数,...

三进制数121(3)化为十进制数为___._答案_百度高考

三进制数121(3)化为十进制数为___. 正确答案及相关解析 正确答案 16 解析 解:由题意,121(3)=1×32+2×31+1×30=16 故答案为:16 最新上传...