代码改变世界

进制间的相互转化

2014-12-02 18:23  小屈的专栏  阅读(1595)  评论(0编辑  收藏  举报

 进制间的转换如下图所示:                                                      

由上图可知,进制间共有12种转换。下面将逐一介绍这12种转换方法

(1)二进制转化为八进制

       原理:<1>1位八进制数可以用3位二进制数码表示

               <2>以小数点为边界:若小数点左侧(即整数部分)不是3的整数倍,则在最左侧补零,对小数点右侧(即小数部分)应在最右侧补零

      例:   将(10.101)2 转化为八进制。

              解:(1)将二进制补足3位

                           即:(010.101)2

                       (2)按权值转换

                           (0×22 + 1×2+0×20).(1×22 + 0×2+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.

 

 

到这里有关进制间的相互转换都已经完成,当然在分析解题思路和举例的过程中可能会有一些失误。如果有不足或者需要扩展的地方还望广大朋友多多指教。同时也希望能对大多数朋友有所帮助。