nbhkdz.com冰点文库

1.3-3K进制化十进制


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.


八进制化为十进制

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

十进制加法计数器 (3)

十进制加法计数器 (3)_电子/电路_工程科技_专业资料。EDA技术与VHDL实验报告实验题目:十进制加法计数器 二实验目的: 设计带有异步复位和同步时钟使能的十进制...

下面那一个是十进制3的二进制表示()

选择: 1、 下面那个是十进制 3 的二进制表示() A、0000 B、0001 C、00011 D、1111 2、 二进制 001101 对应十进制是() A、10 B、13 C、15 D、19...

请你把十进制数位顺序表填完整.(每级1分,共3分)_答案_百度高考

填空题 数学 整数的认识 请你把十进制数位顺序表填完整.(每级1分,共3分) 正确答案及相关解析 正确答案 解析 解:如图所示: ...

题目1 十进制数转换成二进制数

题目2 十进制数转换成十六进制数。从键盘输入十进制数,转换成十六进制数,显 示出来。要求:需要检测输入个规范的十进制数。 题目3 十六进制数转换成十进制...

二进制的1101转化成十进制

进制的 1101 转化成十进制 1101(2)=1*2^0+0*2^1+1*2^2+1*2^3=...进制数转换成 8 进制的方法,和转换为 2 进制的方法类似,唯一变 化:除数由 ...

1)二进制数1011011转换成十进制数为(

1)二进制数 1011011 转换成十进制数为( ) A)103 B)91 C)171 D)71 2)汇编语言是种( )程序设计语言。 A)依赖于计算机的低级 B)计算机直接执行的 C)...

二进制十进制八进制十六进制相互转换

十进制数: (2AB.6)16 = 2×162 + 10×161 + 11×160 + 6×16-1 = (683.375)10 3.转换为二进制 八进制化为二进制 规则:按照顺序,每 1 位八...

高一数学必修3同步练习:1-3-2进位制

5.把 189 化为三进制数,则末位数是( A.0 B.1 C.2 D.3 [答案] A ...[答案] 4 [解析] 将这两个数都转化为十进制数,132(k) =k2 +3k+2,11 ...

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

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