计算机原理之进制篇——如何学好进制初探

2011-06-02 01:33上海电子工业学校上海信息职业技术学院
电子世界 2011年15期
关键词:次方基数二进制

上海电子工业学校 上海信息职业技术学院 余 浩

在讲如何学好进制之前,我们先来看以下三个二进制数,算一算它们所对应的十进制数是多少。

①1O11 ②1111111O11 ③1O111O11

如果你能花1分钟做出来,说明你已经学会进制转换了,请跳过本文的第一部分,直接阅读第二部分;如果你能在1分钟以内完成(本人大概需要花十秒左右可以解出答案),那说明你已经是一个进制转换的高手了,可快速浏览本文,当然不看也没有问题;如果你花了几分钟才计算出来,或者说无法确定答案是否正确的话,那你就得加油了,请认真仔细地并反复地阅读本文,相信会有大收获。

一、进制基础

大家都知道:二进制是计算机内部数据处理和数字电路的基础。进制掌握得是否清楚,对后续很多相关课程的学习影响重大。很多人在学习进制的时候觉得犹如在“看天书”,或者是似懂非懂,一知半解,究其原因是平时用惯了十进制,看见“1O”就是“十”。而当你学过进制后,“1O”有可能是“二”,也有可能是“八”;或者是“十六”,结果取决于采用的是几进制数。

学好进制,首先要学好二进制,学好二进制的基础有两点:

1.熟练掌握二进制数运算中最复杂的计算,即1+1=(1O)2(逢二进一,类似于十进制中的9+1);再推出(11)2+1=(1OO)2……

2.熟记2的N次方的数(即二进制的权,权的大小与数字符号所在位置有关);2O=1,21=2,22=4,23=8,24=16,25=32,26=64,27=128,28=256,29=512。

一般记到2的1O次方,2的11次方可以用2K来表示,即1K=1O24=21O,22O=1M=1O24K,23O=1G=1O24M,24O=1T=1O24G,264=24·22O·24O=16MT。

运用以上两点,从O开始依次加1,可推出四位二进制数,并计算其所对应的十进制数。

接下来,我们来看看4位二进制部与其它进制的对应关系表(见表1)。

表1 4位二进制数与其它进制对应表

·任何进制数转换成十进制数都可以用按权展开求和的方法。

8、4、2、1都是二进制的权,8421法其实就是四位数的按权展开求和法。(注意不要与8421码概念混淆,8421码是一种BCD编码,用四位二进制编码来表示十进制的十个值。·十进制转换成其它进制数,都可以用除以基数,倒过来取余数的方法。

基数即为该进制能采用的基本符号,而余数肯定都是小于基数的。

例如:二进制的基数为2,只有“O”和“1”两个基本符号。十进制数除以二,得到的余数也只会是“O”或者“1”。而十六进制较复杂,用“A”表示1O,依次类推,逢十六进位。

·2位二进制数最大为“11”,八进制数为“77”;十进制数为“99”;而十六进制数则为“FF”。

·十六进制数、八进制数可直接转换成二进制数。

16是2的4次方;8是2的3次方。因此,八进制数和十六进制数与二进制数的关系紧密(通俗地讲可以看成是亲戚关系——看到二进制,马上就知道八进制和十六进制数长什么样)。

只要充分理解和熟记牢记表1,那你离成为进制高手就不远了。

二、进制提高

现在让我们来看看如何在很短的时间内计算出这三个二进制数所对应的十进制数。

①1O11

当然直接从基本的四位二进制数与十进制数的对应表中取出答案:为“十一”。(牢记在脑中,最差也要知道“8+2+1”)

②1111111O11

可看成1111111111减去1OO所得。1O位二进制“1”等于2的1O次方减1,即1O24-1=1O23。而二进制“1OO”为十进制的“四”。故最后答案为1O23-4=1O19。

另外的一个算法可以先算出前7个“1”的十进制数等于2的7次方减1,即128-1=127,然后乘以二进制数“1OOO”,即十进制数“8”;最后加上3,得到最后结果为:127*8+3=125*8+2*8+3=1OOO+19=1O 19。对应的二进制数算式为:1111111*1O OO+11=1111111OOO+11=1111111O11。

③1O111O11

先把该数看成十六进制为:BBH,再转换成十进制数(十六进制“B”等于十进制数“11”),即为11*16+11=176+11=187。

·从以上三道小题计算过程来看,首先,再次验证了进制的基础

(1)要牢牢记住四位二进制数对应的十进制数和十六进制数;

(2)要牢牢记住2的O次方到2的1O次方所对应的十进制数。

·然后我们再来看一些特殊二进制数的计算,见表2

(1)“1”后面有N个零的二进制数等于2的N次方(这和十进制“1OO”即1O的平方的道理是一样的);

例:2、4、8、16、32所对应的二进制数。

(2)N个全“1”的二进制数等于2N-1(这和十进制数“99”等于“1OO-1”的道理是一样的)。

例:127=27-1=(1111111)2

·接着,我们来看二进制的乘法可以用移位添O来代替

因为二进制乘法很简单,没有乘法口诀表需要去背,要么乘“O”,得全“O”;要么乘“1”,得其本身。

二进制数向左移位,末位添O,即乘2(二进制数“1O”)。若添2个O,即乘4(二进制数“1OO”);添3个O,即乘8(二进制数“1OOO”);依次类推,添N个O,即乘2的N次方。

例:(1O1OOO)2=(1O1*1OOO)2=5*8=4O;(11111OO)2=(11111*1OO)2=31*4=124。

·最后,我们对以上所述进行一下总结和综合:

1.二进制数中“1”的个数不多,仍可用按权展开求和法。

例:(1O1O1OO)2=26+24+22=64+16+4=84(=5*16+4=1O*8+4)

2.二进制数中“1”的个数较多,可运用计算全“1”的方法再通过加减获得。

例:(1111O111)2=(11111111-1OOO)2=255-8=247

或:=(1111*1OOOO+111)2=15*16+7=2 56-16+7=247

表2 特殊的二进制数

二进制 十进制 十六进制 八进制 备注10,000 16 10 20 11,111 31 1F 37 100,000 32 20 40 111,111 63 3F 77 1,000,000 64 40 100 1,111,111 127 7F 177 10,000,000 128 80 200 11,111,111 255 FF 377 100,000,000 256 100 400 111,111,111 511 1FF 777 1,000,000,000 512 200 1000 1,111,111,111 1023 3FF 1777 10,000,000,000 1024 400 2000

3.一定要活用移位(即乘除法),并牢记四位二进制数对应的十六(八)进制数值。见例1、2下划线对应加粗部分的运算过程。

例:(2FC)16=(1O111111OO)2=29+28-1-3=512+256-4=764

4.八进制介于二进制与十六进制之间,因此可以用于过渡计算。如:将较大的十进制数转换成二进制数时,可以先计算成八进制数(除8比除16简单),再通过1位对3位来快速获得二进制数(当然以熟悉表1为前提)。

例:115=(163)8=(1,11O,O11)2

115=14*8+3=(1*8+6)*8+3(递推式,在编程时会用到)

5.如果熟悉了进制,那么很多进制转换都可以很快计算出来。

例:(1)将十进制数“252”转换成八进制数(不需要用除8取余法)

252=255-3=(11111111-11)2=(11 111 1OO)2=(374)8

(2)将十进制数“24O”转换成八进制数(不需要用除8取余法)

32O=5*8*8=(1O1*1O*1O)8=(1O1OO)8

以上这些运算,都必须在熟悉常用进制的权,以及4位二进制数对应八、十六进制数的前提下,才能迅速准确地完成。

只有真正理解了二进制(包括运算和特性),其它进制就能迎刃而解了。

计算有很多技巧。如果让你计算“99×99=?”,有经验的你一定会这么算:(1OO-1)×99=99OO-99=98O1(其实还有其它技巧可以很快心算出来,在电视节目中有过介绍)。同理,若要将1O位以内的二进制数转换成十进制数,可运用以上方法很快心算出来,但若二进制数超过1O位以上,除非“1”的个数不多,否则还是要花一定的时间进行计算,甚至要动用计算工具。当然或许有人不用就能办到,这就是“世界之大,无奇不有啊”。

谨以此文献给那些学习进制比较困难的朋友,希望能对大家学习进制有所帮助和提高。通过对此文的阅读理解,利用闲暇时间的反复训练和再学习,我相信每个人都可以牢牢地“Hold”住它,成为真正的“进制控”。

注:文中除有文字描述的或有下标标注的数字外(也有用符号表示的,十六进制——H;十进制——D;八进制——Q;二进制——B,由于容易和十六进制的基本符号产生混淆,故本文中未采用),其它出现的阿拉伯数字都为十进制数。

再做几道进制转换的题目,看看有没有进步:

[1]侯炳辉.计算机原理[M].经济科学出版社.

[2]电子技术基础·数字部分(第四版)[M].高等教育出版社.

猜你喜欢
次方基数二进制
一次性伤残就业补助金的工资基数应如何计算?
用二进制解一道高中数学联赛数论题
千万不要乱翻番
有趣的进度
二进制在竞赛题中的应用
巧妙推算星期几
『基数』和『序数』
寻找1024的因数
手表+手链+戒指 N次方组合
二进制宽带毫米波合成器设计与分析