APP下载

数制间的转换技巧

2010-08-15李纪

太原城市职业技术学院学报 2010年5期
关键词:二进制正整数数码

李纪

(太原广播电视中专,山西 太原 030001)

数制间的转换技巧

李纪

(太原广播电视中专,山西 太原 030001)

计算机原理是中等职业学校计算机专业的一门主干专业课程,数制转换是其中的基础知识。我们日常生活中使用的是十进制,而计算机中是用二进制来表示数据的,这就需要进行数制间的转换,但用常规方法计算量较大,本文介绍通过在教学中总结的一些转换技巧,从而提高效率和准确性。

数制;转换;十进制;二进制

计算机原理是中等职业学校计算机及应用专业的一门主干专业课程,其中数据在计算机中的表示这一章中要求学生能够熟练掌握各数制间的转换,为以后掌握必要的软硬件知识,掌握微型计算机组成结构和各部件的工作原理,了解指令系统和汇编语言知识及程序设计的基本概念奠定基础。另外,它也是中等职业学生对口升学考试中的基础知识点。

一、基本概念

数制是用一组固定的数字和一套统一的规则来表示数目的方法。在计算机中,常用的数制有十进制、二进制、八进制和十六进制。

十进制数是人们十分熟悉的计数方式,它是用0~9十个数字符号,按一定规律排列起来,表示值的大小,按照“逢十进一”的原则计数。例如,6336这个四位数可写成:6336=6×103+3×102+3×101+6×100,从这个表达式中可发现以下特点:(1)十进制的基数为10,即允许选用基本数码的个数,只有0~9这10个数字符号。

(2)同一数字符号在不同位置代表的数值是不同的。右边第一位为个位,记作100;第二位为十位,记作101;第三和第四位依此类推。通常将103、102、101、100称为对应数位的权,各位数的权都是基数的幂。每个数位对应的数字符号称为系数,所以某数位的数值等于该位的系数和该位权的乘积。如6336这个数中虽然有两个6,但一个代表6000,一个代表6;3也是如此。(3)从右向左采用逢十进位。

从上边对十进制数的分析,得到二进制数的基数为2即0和1两个数字符号;各位的权为2的幂;从右到左,采用“逢二进一”的原则。

同样的道理:八进制的基数为8,即0~7八个数字符号;各位的权为8的幂;从右到左,采用“逢八进一”的原则。十六进制的基数为16,即0~9、A、B、C、D、E、F16个数字符号;各位的权为16的幂;从右到左,采用

“逢十六进一”的原则。

在计算机中,通常用数字后面跟一个英文字母来表示该数的进制。其中,“D”表示该数为十进制数(Decimal number),有时可以省略;“B”表示该数为二进制数(Binarynumber);“Q”表示八进制数(Octal number);“H”表示十六进制数(Hexadecimal number)。

二、各进制转换成十进制的普通算法——按权展开相加法

二进制:1101111B=1×26+1×25+0×24+1×23+1× 22+1×21+1×20=64+32+8+4+2+1=111即二进制数1101111转换成十进制数为111

八进制:213Q=2×82+1×81+3×80=139

十六进:2FAH=2×162+15×161+10×160=762

这种方法计算量很大,比较容易出错,而且浪费时间。考试对时间和准确性要求非常高,而且不能使用任何有关的电子设备或是计算类工具,通过长期的思考和总结,对于有些特殊的值,我们可以使用一些简便方法,提高效率。另外,因为8和16,都是2的整次幂,所以二进制正整数与八进制和十六进制正整数的相互转换又比较容易。这样一来,十进制数和二进制数相互转换的技巧就至关重要了。

三、二进制数转换成十进制数

由于二进制数的特殊性,要不是加上所在位的权值,要不就是0,所以权值的规律就很重要。它们分别是1、2、4、8……构成的是等比数列。根据等比数列的求和公式Sn=a1(1-qn)/(1-q),第一项a1=1,公比q=2,求得二进制中特有的求和公式,这个公式就是当二进制数码全部为1情况下的累积权值,也就是二进制数转换成的十进制数。例如:11111111B=28-1=255,即先数清总的二进制位数,此题为8,n=8,代入公式就可立即求出结果,比普通算法既省时又不易出错。

对于二进制数中有个别0的情况,用累计权值减去0位上的权值即可,这样就得到公式:Sn=(2n-1)-2a-2b……(注:Sn为十进制数,n为总的二进制位数,a、b等为0位上相应的位序),例如:1111110B=(27-1) -20=128-1-1=126,当然在0绝对多的情况下,采用这种方法就比较麻烦,可以用普通按权展开相加法。

对于像第一个数为1,其余都为0的二进制数,也有简单方法可寻。如:10000000B=27=128,即为2n(注:n为0的个数)。

四、十进制数转换成二进制数

十进制数转换成二进制数,通常使用的是除2取余法,这种方法如果数比较大的话,我们画连除图有点浪费时间且容易出错,现在我们尝试换一种思路,从权值出发,找到相应的位权,逐步推导,将十进制数快速转换成二进制数。

因为二进制数是由数码与位权的值相乘后累积的和,又因为任何数与0相乘的积都为0,所以我们把二进制数转换十进制数时,只要把1位上的权值相加即可。反之,在十进制数转换成二进制数时,我们可以逆向思维,首先找到等于或小于且最接近该十进制数的权值,确定数码为1的最高位数;然后把十进制数与确定的最高位的权值相减,得到差值,再找到与差值相等或比差值小且与之最接近的权值,确定第二个数码为1的位数,依次类推,直到差值为0,最后在空位填上0,注意不要丢掉第0位,另外,这种方法需要熟记2的0~10次幂数值。

例如,我们将12转换成二进制数,首先找到与12相等或小于12且与12最接近的权值,我们可以确定是8=23,又因为12-8=4,我们再找到与4相等或比4且小接近4的权值,即为4=22,这时我们可以写为12=8+4=23+22=1100B,即在第3位写1,第2位写1,第1位写0,第0位写0,一定别忘记第0位,我们可以看出二进制数的位数是最高位次幂加1,如上例中最高次幂为3,二进制数位数为4。这种方法渐渐熟悉后就会很快求得结果。

同样道理的逆向思维,对于一些特殊的十进制数,也可反过来用二进制数转十进制数的方法。如8=23=1000B,16=24=10000B,32=25=100000B,它们的制数为1后加n个0。再如规律是十进制数为2的n(n为正整数)次幂转换为二进7=23-1=111B,15=24-1=1111,31=25-1=11111,它们的规律是十进制数为2的n(n为正整数)次幂减1转换为二进制数为n个1。

五、八进制和十六进制数

有了二进制数和十进制数的技巧,八进制和十六进制数就可借助于二进制数这个桥梁轻松和十进制数进行互换了。

[1]宫静洲.巧换二进制与十进制[J].中国信息技术教育,2009,(5):27-28.

[4]武马群主编.计算机原理[M].北京:高等教育出版社,2002.

[3]李立东,朱晓鸥.微机原理与汇编语言基础[M].北京:高等教育出版社,2002.

O1

A

1673-0046(2010)5-0169-02

猜你喜欢

二进制正整数数码
关于包含Euler函数φ(n)的一个方程的正整数解
用二进制解一道高中数学联赛数论题
有趣的进度
被k(2≤k≤16)整除的正整数的特征
二进制在竞赛题中的应用
Naim Audio Uniti Nova数码播放/放大器一体机
周期数列中的常见结论及应用*
方程xy=yx+1的全部正整数解
数码暗房
二进制宽带毫米波合成器设计与分析