首页 > 代码库 > 进制间的相互转化
进制间的相互转化
进制间的转换如下图所示:
由上图可知,进制间共有12种转换。下面将逐一介绍这12种转换方法
(1)二进制转化为八进制
原理:<1>1位八进制数可以用3位二进制数码表示
<2>以小数点为边界:若小数点左侧(即整数部分)不是3的整数倍,则在最左侧补零,对小数点右侧(即小数部分)应在最右侧补零
例: 将(10.101)2 转化为八进制。
解:(1)将二进制补足3位
即:(010.101)2
(2)按权值转换
(0×22 + 1×21 +0×20).(1×22 + 0×21 +1×20)=2.5
故 (010.101)2 =(2.5)10
注意:从最低位开始把3位划分为一组。
(2)二进制转化为十进制
例: 将(1101.0101)2转化为十进制。
解:23+ 22+20+2-2+ 2-4=13.3125
故 (1101.0101)2=(13.3125)10
解题技巧:记住对应的位权
20 21 22 23 24 25 26 27 28 29 210 211 1 2 4 8 16 32 64 128 256 512 1024 2048
(3)二进制转化为十六进制
原理:<1>1位十六进制数可以用4位二进制数码表示
<2>以小数点为边界:若小数点左侧(即整数部分)不是4的整数倍,则在最左侧补零,对小数点右侧(即小数部分)应在最右侧补零
例: 将(10.101)2转化为十六进制。
解:(1)将二进制补足3位
得 (0010.1010)2
(2)按权值转换
21 .(23+21)=2.A
故 (10.1010)2 =(2.A)16
注意:从最低位开始把3位划分为一组。
(4)八进制转化为二进制原理:将一个八进制数分成三个二进制数,用三位二进制按权相加,最后得到二进制,小数点不变。
例:将(376.01)8转化为二进制。
分解图如下:
故 (376.01)8=(11111110.000001)2
(5)八进制转化为十进制
例:将(7.44)8 转化为十进制
解:(7.44)8 =7×80+4×8-1+4×8-2=(7.5625)10
注意:八进制基本符号的取值范围,即:0~7.
(6)八进制转化为十六进制
这里有两种解法:
解法一:将八进制转化为二进制,再将二进制转化为十六进制
解法二:将八进制转化为十进制,再将十进制转化为十六进制
例: 将(67.54)8 转化为十六进制。
解法一
<1> 将八进制转化为二进制
(67.54)8=(110111.101100)2
<2>将二进制转化为十六进制
故 (110111.101100)2=(37.B)16
解法二
<1>将八进制转化为十进制
(67.54)8=(55.6875)10
<2>将十进制转化为十六进制
故 (55.6875)10=(37.B)16
(7)十进制转化为二进制
整数部分---原理:<1>用2除十进制的整数部分,取余数最低位数值
<2>再用2除商,取余数最低位数值
<3>重复<2>直到商为0.
例: 将37转化为二进制。
解:如下分解
得 (37)10=(100101)2.
注意:余数部分是由低到高,写出的二进制是由高到低。
余数部分---原理:<1>用2乘十进制小数部分,取乘积整数得到最高位
<2>再用剩余小数部分乘2,取乘积整数得到次高位
<3>重复直到乘积为0或得到的小数位满足要求
例: 将0.43转化为二进制小数。(假设要求小数点后五位)
解:如下图所示
故 转化后的二进制小数为(0.01101)2
(8)十进制转化为八进制
例: 将(1109)10转化为八进制。
解:如下图解
故 (1109)10=(2125)8
下面我们来看看转化为八进制小数的情况
例如:(0.385)10转化为八进制小数。
解: 0.385x8
3 0.08x8
0 0.64x8
5 0.12x8
结果:(0.385)10=(0.305)8
(9)十进制转化为十六进制
例:将(55.6875)10转化为十六进制。
解:<1>先求小数部分
得 (55)10=(37)16
<2>求小数部分
0.6875x16
11 0
得 (0.6875)10=(0.B)16
故结果为:(55.6875)10=(37.B)
(10)将十六进制转化为二进制
原理:将一位十六进制数分解成四位二进制数,再用四位二进制按权相加,最后得到十六进制数,小数点位置不变。
例:将(6E.2)16转化为二进制。
解:图解如下
故结果为:(6E.2)16=(01101110.001)2
(11)十六进制转化为八进制
解题思路:先将十六进制转化为二进制,然后再将二进制转化为八进制。
例:将(8E.09)16转化为八进制。
解:<1>将十六进制转化为二进制,得
(8E.09)16=(10001110.00001001)2
<2>将二进制转化为八进制,得
(10001110.00001001)2=(216.022)8
所以转化的最终结果为
(8E.09)16=(216.022)8
(12)十六进制转化为十进制
例:将(1A.08)16 转化为十进制。
解:(1A.08)16=1x16+10x160+8x16-2=(26.03125)10
故结果为:(1A.08)16=(26.03125)10.
到这里有关进制间的相互转换都已经完成,当然在分析解题思路和举例的过程中可能会有一些失误。如果有不足或者需要扩展的地方还望广大朋友多多指教。同时也希望能对大多数朋友有所帮助。
进制间的相互转化