进制转换及其在程序设计中的应用 教学优秀论文
二进制转换成十六进制:因为每四位二进制可以用一位十六进制来表示,所以只要把每四位二进制数用十六进制表示出来,连接起来就是这个二进制数的十六进制形式。
例:将二进制数101110010.101111转换成十六进制。
我们作如下处理:
0001,0111,0010.1011,1100
1 7 2 . B C
所以(101110010.101111)2=(172.bc)16
注意:
(1)整数部分由个位数开始由右向左每四位为一组,不足四位左边补0;
(2)小数部分由十分位数开始由左向右每四位为一组,不足四位右边补0。
十六进制转换成二进制:每位十六进制可以用四位二进制来表示,因而只要从高位到低位,把十六进制的每个数码用四位二进制表示出来,就是十六进制数的二进制形式。
例:把十六进制数A2B.C5转换成二进制。
A2B.C5
1010,0010,1011.1100,0101
因此,(A2B.C5)16=(101000101011.11000101)2
二、进制转换在程序设计中的应用
有些问题用搜索或其他方法比较复杂,用进制转换的思想与方法可以使问题简单并容易实现,进制转换在程序设计中广泛应用,下面结合两个实例加以说明。
例1:取苹果问题
有K箱苹果,分别装有1,2,4,8,……,2K-1个苹果,现要从中取出N个苹果出来,取果的规则是要么一个也不取,要么取完这一箱苹果。从键盘输入N和K,编程序求出该取哪几箱苹果?如果无法按要求取出苹果,则输出“NO!”。
分析:
因为任何一个十进制数都可以转化为二进制数,如:
(13)10=(1101)2=1*23+1*22+0*21+1*20 即要取13个苹果可以取1,4,8箱的苹果,当S>1+2+4+8+……+2K-1 时无法按要求取得。因此,问题转化为将N转化为二进制,即可找到取苹果方案。
程序如下:
program aplle;
var k,n,ru:iinteger;
t,I,j,bj:integer; s:longint;
A,b:array[1..100] of integer;;
Begin
Write(‘k=’);readln(k);
Write(‘n=’); readln(n);………………………………【全文请点击下载word压缩文档】
点击下载此文件





