二进制转十进制、十进制转十六进制

二进制转十进制、十进制转十六进制及其他各进制的转换方法2009-03-22 09:51二进制转换十进制

首选二进制转其它进制:

二进制数第0位的权值是20次方,第1位的权值是21次方……

例如,设有一个二进制数:0110 0100,转换为10进制为:

下面是竖式:

0110 0100 换算成 十进制

从右边位数开始数起:

0 0 x 2^0 = 0

1 0 x 2^1 = 0

2 1 x 2^2 = 4

3 0 x 2^3 = 0

4 0 x 2^4 = 0

5 1 x 2^5 = 32

6 1 x 2^6 = 64

7 0 x 2^7 = 0

--------------------------

(0110 0100)B=(100)D

注:数字后面相应的字母表示不同的进位制。B表示二进制,O表示八进制,D表示十进制,H表示十六进制。

八进制转换十进制

八进制就是逢81

八进制数采用 07这八数来表达一个数。

八进制数第0位的权值为80次方,第1位权值为81次方,第2位权值为82次方……

所以,设有一个八进制数:1507,转换为十进制为:

用竖式表示:

1507换算成十进制。

0 7 x 8^0 = 7

1 0 x 8^1 = 0

2 5 x 8^2 = 320

3 1 x 8^3 = 512

--------------------------

(1507)O=(839)D

同样,我们也可以用横式直接计算:

7 X 8^0 + 0 X 8^1 + 5 X 8^2 + 1 x 8^3 = (839)D

结果是,八进制数1507 转换成十进制数为 839

十六进制转换为十进制

十六进制的各字母所代表的数字是:A(10)B(11)C(12)D(13)E(14)F(15)

同样可以用上面的竖式来表示(这里就略了)

横式表示如下

(ABC.8C)H=10x16^2+11x16^1+12x16^0+8x16^-1+12x16^-2

=2560+176+12+0.5+0.046875

=(2748.546875)D

 

 

 

十进制转换为二进制、八进制、十六进制

十进制转为其它进制要分为两部份,因为十进制有小数跟整数部份,所以要分两步:

1.整数部分除R取余

例:(125)D=(1111101)B

这里是用短除法来完成的,换句话说:除R取余“R”就是进制数,如果是二进制就R=2,同理八进制就R=8

R=2    被除数    余数       余数的获取

2       125             1             125-2X62=1      最低位

2       62             0             62-2X31=0

2       31              0           31-2X15=1

2       15              1           15-2X7=1

2       7               1             7-2X3 =1

2       3                 1             3-2X1=1

2       1                1             1-2X0=1         最高位

结果:(125)D=(1111101)B

注:余数中最后得到的余数为最高位,最先得到的余数为最低位,从高到低依次排列。

同理十进制转换为八进制时:只要更改R的值就可以。此处不重复。

2.小数部分乘R取整

例:(0.25)D

0.25

X 2               0

_______________

0.50 (整数部分0为高位)

X 2          0

_______________               (从上往下写)

                  1

1.00 (整数部分1为低位)

从上往下写结果:0.01

(0.25)D=(0.01)B

以下写个复杂小小的例题:(0.625D

0.625

X 2                 0     

_______________

1.250               1       (因为乘2后所得的结果整数部分得1,所以取1

0.25                         (因为一以被取所以整数位变0

X 2          

_______________               (从上往下写)

0.5                  0

X2            

_______________

1                                            1

结果:(0.625D=0.101B

注:整数的转换是精确的,小数的转换可能出现无穷小数或循环小数的情况。此时需要进行舍入处理以截断,所以小数的转换可能略有偏差。箭头表示由高位到低位的趋势。

至于注释所说的只要按照以上的方法用计算十进制(0.1D转二进制是得什么结果就明白了。

同理十进制转八、十六进制是一样。这里略

这里以说明了二进制转其它进制的方法以及十进制转换其它进制的方法

所如果想达到进制的转换需要跳级进制的方法的话,可以用以下的方法,

一般二进制转换八进制是:先二进制转十进制再十进制转八进制的方法

但以下是可以一步完成进制的转换方法:

例:(0110 0100B转八进制

首先将0110 0100写成 001 100 100 这两个数是等效的,只不过是在原来的基础上前加一个0,为什么要三位为一个单元呢,因为二进制转八进制是由三个位来完成一个八进制的单个数。如上例:

0110 0100 ------à    001 100 100        三位为一个单元

                                  1 4   4

所(0110 0100B=144O

同理:(0110 0100B=(64)H

0110 0100                                           四位为一个单元

6      4

提醒:只要记清楚常用的互为相加就方便很多了。

二进制    十进制

1              1

10            2

11           3=1+2 也就是(1+10B

100          4

1000        8

10000      16

100000    32

 

posted on 2009-07-17 10:55  现实的沙漠  阅读(8559)  评论(1)    收藏  举报

导航