首页 > 8 其它知识 > 进制转换

进制转换

2011年2月24日 AEROFISH 2,723 views 发表评论 阅读评论

十进制、二进制、八进制、十六进制之间的互相转换。

进制转换分为正数和负数两部分。负数部分需涉及到字节数与补码知识,有点复杂,这里暂时不作介绍。

下面为正数的进制转换:

1.任意进制转成十进制

任意进制转十进制,这个“任意”数为“基”数。个位数的“权”数为“基”数的0次方,十位数的“权”数为“基”数的1次方,百位数的“权”数为“基”数的2次方,依次类推。

转换方法:各个位数上的数分别乘以权数,再求和。

举例1-1:二进制101101.101转换成十进制

1×25+0×24+1×23+1×22+0×21+1×20+1×2-1+0×2-2+1×2-3=32+8+4+1+0.5+0.125=45.625
由于0乘任意数都为o,所以可简化为:
1×25+1×23+1×22+1×20+1×2-1+1×2-3=32+8+4+1+0.5+0.125=45.625
所以,二进制101101.101等于十进制45.625。

举例1-2:八进制1234转换成十进制

1×83+2×82+3×81+4×80=512+128+24+4=668
所以,八进制1234等于十进制668。

举例1-3:十六进制1D2C转换成十进制

这里,十六进制的A、B、C、D、E、F,需转成对应的十进制表示,分别为10、11、12、13、14、15。
1×163+13×162+2×161+12×160=4096+3328+32+12=7468
所以,十六进制1D2C等于十进制7468。

2.十进制转换成任意进制

分为整数部分和小数部分。

1)整数部分转换方法:除“基”数取余法。

举例2-1-1:十进制6转成二进制

6÷2=3余0
3÷2=1余1
1÷2=0余1
取余数,从下往上排列,为110
所以,十进制6等于二进制110。

举例2-1-2:十进制668转成八进制

668÷8=83余4
83÷8=10余3
10÷8=1余2
1÷8=0余1
取余数,从下往上排列,为1234
所以,十进制668等于八进制1234。

举例2-1-3:十进制668转成十六进制

668÷16=41余12
41÷16=2余9
2÷16=0余2
取余数,从下往上排列,同时将12转变为C。
所以,十进制668等于十六进制29C。

2)小数部分转换方法:乘“基”数取整法。

举例2-2-1:十进制0.8125转成二进制

0.8125×2=1.625
0.625×2=1.25
0.25×2=0.5
0.5×2=1
从上往下取整数,前面再加小数点。
所以,十进制0.8125等于二进制0.1101。

举例2-2-2:十进制0.8125转成八进制 

0.8125×8=6.5
0.5×8=4
从上往下取整数,前面再加小数点。
所以,十进制0.8125等于八进制0.64。

举例2-2-3:十进制0.8转成十六进制

0.8*16=12.8
0.8*16=12.8
……
从上往下取整数,前面再加小数点,同时12转换成C。
所以,十进制0.8等于十六进制0.CCC……

3.二进制、八进制、十六进制互相转换

三者关系表:

二进制 十六进制 八进制 8421、421关系
0000 0 0 0
0001 1 1 1
0010 2 2 2
0011 3 3 2+1=3
0100 4 4 4
0101 5 5 4+1=5
0110 6 6 4+2=6
0111 7 7 4+2+1=7
1000 8   8
1001 9   8+1=9
1010 A   8+2=10
1011 B   8+2+1=11
1100 C   8+4=12
1101 D   8+4+1=13
1110 E   8+4+2=14
1111 F   8+4+2+1=15

8421关系:二进制与十六进制之间,每4位二进制的“权值和”对应1位十六进制;
421关系:二进制与八进制之间,每3位二进制的“权值和”对应1位八进制。

举例3-1:二进制101101转成十六进制

101101只有6位,前面要补两个零。
0010 1101,每4位二进制的“权值和”对应1位十六进制(8421关系):
0010→1×21=2
1101→1×23+1×22+0×21+1×20=8+4+1=13,为十六进制D
所以,二进制101101等于十六进制2D。

举例3-2:二进制10110101转成八进制

10110101只有8位,前面要补一个零。
010 110 101,每3位二进制的“权值和”对应1位八进制(421关系):
010→2
110→4+2=6
101→4+1=5
所以,二进制10110101等于八进制265。

举例3-3:二进制0.1011转十六进制(小数部分,原理同上)

1011→8+2+1=11,为十六进制B
所以,二进制0.1011等于十六进制0.B。

另外:

十六进制、八进制转二进制的方法为上面的倒推。

十六进制、八进制的相互转换,都先过渡为二进制。

举例3-4:十六进制2F.D转换成八进制

每1位十六进制对应4为二进制:
2→0010
F→15=8+4+2+1→1111
D→13=8+4+1→1101
因此,十六进制2F.D等于二进制101111.1101
然后,每3位二进制对应1位八进制,位数不足补零:
101 111 . 110 100
101→4+1=5
111→4+2+1=7
110→4+2=6
100→4
得,八进制为57.64。
所以,十六进制2F.D等于八进制57.64。


本文对我无帮助,减1分本文对我有帮助,加1分 (本文对您有帮助吗?)
Loading ... Loading ...

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.