『计算机组成原理』二进制转化十进制的简便方法(小节)

我们要实现二进制转化十进制的通常方法是:
从最后一位开始算,依次列为第0、1、2...位,第n位的数(0或1)乘以2的n次方,得到的结果相加就是答案。
例如: 1101转十进制
从右向左   1*2º+0*2¹+1*2²+1*2³ = 13

简便解法:
数学中的进制即十进制数中,在一个数的整数部分的最右侧加0,每加一个0,这个数是前一个数的10倍,如25、250、2500...等等;在小数部分的最左侧每加一个0,这个数是前一个数的十分之一,如0.25、0.025、0.0025...等等
设想:二进制数中,在1的右侧(整数部分)或左侧(小数部分)每增加一个0,会是前一个 数的2倍或二分之一吗?

想想看:为什么只针对数码1来进行?

推理过程:分别把整数部分和小数部分转换成十进制来进行比较,按“乘权求和”的规则进行转换

整数部分:(1)2=(1)10;(10)2=(2)10;(100)2=(4)10;(1000)2=(8)10;(10000)2=(16)10..

小数部分:(0.1)2=(0.5)10;(0.01)2=(0.25)10;(0.001)2=(0.125)10;(0.0001)2=(0.0625)10;0.00001)2=(0.03125)...

 

这些转换过程,令你忆起了数制概念中关于位和值的定义吗?同样的数在不同的位置所代表的值是不同的,称为位值(或权值)。现在明白它的含义了吗?这条,是下面转换的最直接的依据。

 

排列:1、2、4、8、16......     0.5、0.25、0.125、0.0625、0.03125......

结论:整数部分2倍;小数部分:二分之一即0.5倍

    以上就是这种“另类”解法的理论依据,它另类吗?好,我们现在就来看看这种另类的方法到底是怎样实现数制之间转换的。同样以二进制数转换为十进制数中的例子来看

(1101.011)2=(      )10

第一步:画出一串表示位的标记,如“×”,标记的多少根据题目中出现数字数目的多少而定,比方这个例子,整数部分有4位,小数部分三位,共7位.千万记得给小数点留个位置哦!

 

×

× 

× 

×

.

×

×

×

 

第二步:在相应的位上写上它所对应的值,值的大小整数部分从右到左依次为1、2、4、8、16...即后一个数是前一个数的2倍;小数部分从左到右依次为0.5、0.25、0.125、0.625...即后一个数是前一个数的0.5倍。

 

8

4

2

1

.

0.5

0.25

0.125

×

×

×

×

.

×

×

×

 

 

第三步:将二进制数按位写在标记的下文

 

8

4

2

1

.

0.5

0.25

0.125

×

×

×

×

.

×

×

×

1

1

0

1

.

0

1

1

 

第四步:将位值为“1”的标记上方的数字相加,即为二进制数所对应的十进制数

8 + 4  + 1 + 0.25 + 0.125 =13.375

即:(1101.011)2 = (13.375)10

在实际的换算过程中,同学们只要直接写出第三步,然后用第四步来得出相应结果就可以了。

 

原文地址:http://blog.chinaunix.net/uid-25067956-id-3001089.html

posted on 2012-10-31 10:16  jlokys  阅读(1911)  评论(0编辑  收藏  举报