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

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

方法:位权求和法

二进制用符号“B”表示   十进制用符号“D" 表示   八进制用符号"O"表示 十六进制用符号"H"表示

(100101.10111)B   =  (1*2^5 + 0*2^4 + 0*2^3 + 1*2^2 + 0*2^1 + 1*2^0  + 1*2^-1 + 0*2^-2 + 1*2^-3 + 1*2^-4 + 1*2^-5)D

(7376.3576)O  =  ( 7*8^3 + *8^2 + 7*8^1 + 6*8^0 + 3*8^-1 + 5*8^-2 + 7*8^-3 + 6*8^-4)D

(9FC56.67A)H =  (9*16^4+ 15*16^3+ 12*16^2+ 5*16^1+ 6*16^0+6*16^-1+7*16^-2+10*16^-3)D

                           

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

方法:整数部分 + 小数部分

整数部分·:除R倒取余数法         (从下到上取值)

193       397     746                       

193/2 = 96  ~                       397/8 = 49  ~               746/16 = 46   ~  A

  96/2 = 48  ~                        49/8 = 6    ~    1                 46/16 = 2   ~  E

  48/2 = 24  ~    0                        6/8 = 0     ~                   2/16 = 0     ~  2

  24/2 = 12  ~                       

  12/2 = 6    ~    0                                                                                   

    6/2 = 3    ~    0                    (193)D = (11000001)B

    3/2 = 1    ~    1                   ( 397)D = (615)O

    1/2 = 0    ~    1                    (746)D = ( 2EA)H

 小数部分:乘R倒取余数法     (从上到下取值,一般取到4到5位数字)

                0.73                                  0.45                                     0.3         

0.73 * 2 = 0.46  ~               0.45 * 8 = 0.6 ~                0.3 * 16 = 0.8  ~ 4

0.46 * 2 = 0.96  ~  0                0.6 * 8 = 0.8 ~  4                 0.8 * 16 = 0.8  ~ C

0.96 * 2 = 0.92  ~  1                0.8 * 8 = 0.4 ~  6                  0.8 * 16 = 0.8 ~ C

0.92 * 2 = 0.84  ~                 0.4 * 8 = 0.2 ~                   0.8 * 16 = 0.8 ~ C

(0.73)D ~ (0.1011) B               (0.45)D ~ (0.3463)O            (0.3)D ~ (0.4CCC)H

三.  二进制转化为 八进制、十六进制

1.二进制转八进制:取三合一法

取三和一法从小数点开始向左向右,每3位组成一个整体,转换为十进制,最左边的不够3位, 就在最左边补0,最右边的不够3位,就在最右边补0

             

例1    1001110010.1110001010 

   1 001 110 010.111 010 101 = 001 001 110 010 . 111 010 101

                                                    1     1       6     2   .    7     2        5

1 001 110 010.111 010 101 )B = (1162.725)O

例2   1011101110.10111

   10 101 110.101 11 = 010  110 . 101 110

                                       2      6   .    5    6

  (10 101 110.101 11)B = (26.52)O

2.二进制转十六进制:

方法:取四合一法

取四合一法从小数点开始向左向右,每4位组成一个整体,转换为十进制数,最左边不够4 位, 就在最左边补0,最右边的不够4位,就在最右边补0

例1    1001110010.1110001010 

10 0111 0010.1110 1010 1 =   0010 0111 0010 .1110 1010 1000

                                                     2      7       2   .    E      A      8 

(10 0111 0010.1110 1010 1)B  =  (272.EA8)H

例2     11000101110.001111001

 110 0010 1110.0011 1100 11 = 0110  0010  1110 . 0011 1100 1100

                                                       6       2      E    .   3       C       C

(11000101110.001111001)B =  (62E.3CC)H

四. 八进制、十六进制转换成 二进制

1. 八进制转换成二进制

 方法:一分为三法

一分为三法:将每一个八进制数字转换为3位数字的二进制数表示

75673

75673 =  111 101 110 111 011

                7     5     6      7     3

75673)O = (111 101 110 011)B

2.  十六进制转化成二进制

方法:一分为四法

一分为四法:将每一个十六进制数转换为4位数组的二进制数表示

9F6D4

9F6D4= 1001  1111 0110  1101 0100

                9        F        6       D      4       

   (9F6D4)H = (1001 1111 0110 1101 0100)B

五. 十进制和二进制之间的快速转换

2 ^ 0 = 1      2 ^ 1 = 2          2 ^ 2= 4          2 ^ 3 = 8            2 ^ 4= 16            2^5=32     

2 ^ 6 = 64    2 ^ 7 = 128     2 ^ 8 = 256     2 ^ 9 = 512       2 ^ 10 = 1024

1.十进制转化为二进制   

例1: 67=64+2+1所以再64,2,1下面位置补充1,其余补充0

补充位置时,从数值较大位置开始补充,然后按照数值大小依次补充1或0

      64       32      16      8        4         2         1

        1        0         0       0       0         1          1

所以(67)D   =  (1000011)B

例2:197 =12 ^ 7 +  12 ^ 6 +  02 ^ 5+  02 ^ 4+  02 ^ 3+  12 ^ 2 +  02 ^ 1+  12 ^ 0               =128+64+4+1

 128   64       32      16      8        4         2         1

   1      1        0         0        0        1       0           1

   (197 )D  = (11000101)B

2.二进制转十进制

例1: 10010111

先写上 :      1         0           0         1         0         1          1          1

然后填充: 128      64        32       16        8          4                  1

十进制为: 128+16+4+2+1=251

10010111)B =(251)D

例2:   10101110

先写上 :       1         0        1        0        1        1        1          0

然后填充:  128      64       32     16        8        4        2          1     

十进制为:128+32+8+4+2 = 174

(10101110)B = (174)D

六. 八进制与十六进制之间的转换

方法:八进制与十六进制不能直接转换,需要通过转换成二进制或十进制进行互相转换

1.    八进制转换成十六进制

   75673

  第一步:八进制 转换成 二进制       方法:一分为三法  

     

                75673 =  111 101 110 111 011

                                 7     5     6    7     3

                (75673)O = (111 101 110 111 011)B

  第二步:二进制转换成十六进          方法:取四合一法

           111 1011 1011 1011  = 0111  1011  1011  1011  

                                                  7         B       B       B

                (111 1011 1011 1011)B =  (7BBB)H

        所以:(75643)O =(7BBB)H

2.  十六进制转化成八进制

例如: 9F6D4

第一步:十六进制 转换成 二进制       方法:一分为四法  

              9F6D4= 1001  1111 0110  1101 0100

                               9        F       6       D      4       

         (9F6D4)H = (1001 1111 0110 1101 0100)B

第二步:二进制转换成八进制          方法:取三合一法

             10 011 111 011 011 010 100  =  010 011 111 011 011 010 100

                                                                  2     3     7    3    3      2    4

  (10011111011011010100)B = (2373324)O

  所以:  (9F6D4)H  =  (2373324)O

注意:八进制与十六进制之间的转换,如果转换成十进制再转换成八进制或十六进制过程会非常繁琐,计算量比较大,如果转换成二进制会方便很多,建议采用转换成 二进制的方法

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
二进制八进制:使用 PHP 内置函数 decoct(),将二进制转换十进制数,再将十进制转换八进制数。例如,将二进制数 11010 转换八进制数,步骤如下: 1. 将二进制数 11010 转换十进制数,使用 bindec() 函数,得到十进制数 26。 2. 将十进制数 26 转换八进制数,使用 decoct() 函数,得到八进制数 32。 因此,二进制数 11010 转换八进制数为 32。 二进制十六进制:使用 PHP 内置函数 dechex(),将二进制转换十进制数,再将十进制转换十六进制数。例如,将二进制数 11010 转换十六进制数,步骤如下: 1. 将二进制数 11010 转换十进制数,使用 bindec() 函数,得到十进制数 26。 2. 将十进制数 26 转换十六进制数,使用 dechex() 函数,得到十六进制数 1A。 因此,二进制数 11010 转换十六进制数为 1A。 八进制二进制:使用 PHP 内置函数 decoct(),将八进制转换十进制数,再将十进制转换二进制数。例如,将八进制数 32 转换二进制数,步骤如下: 1. 将八进制数 32 转换十进制数,使用 octdec() 函数,得到十进制数 26。 2. 将十进制数 26 转换二进制数,使用 decbin() 函数,得到二进制数 11010。 因此,八进制数 32 转换二进制数为 11010。 八进制十进制:使用 PHP 内置函数 octdec(),将八进制转换十进制数。例如,将八进制数 32 转换十进制数,直接使用 octdec() 函数,得到十进制数 26。因此,八进制数 32 转换十进制数为 26。 八进制十六进制:使用 PHP 内置函数 decoct(),将八进制转换十进制数,再将十进制转换十六进制数。例如,将八进制数 32 转换十六进制数,步骤如下: 1. 将八进制数 32 转换十进制数,使用 octdec() 函数,得到十进制数 26。 2. 将十进制数 26 转换十六进制数,使用 dechex() 函数,得到十六进制数 1A。 因此,八进制数 32 转换十六进制数为 1A。 十六进制二进制:使用 PHP 内置函数 hexdec(),将十六进制转换十进制数,再将十进制转换二进制数。例如,将十六进制数 1A 转换二进制数,步骤如下: 1. 将十六进制数 1A 转换十进制数,使用 hexdec() 函数,得到十进制数 26。 2. 将十进制数 26 转换二进制数,使用 decbin() 函数,得到二进制数 11010。 因此,十六进制数 1A 转换二进制数为 11010。 十六进制八进制:使用 PHP 内置函数 hexdec(),将十六进制转换十进制数,再将十进制转换八进制数。例如,将十六进制数 1A 转换八进制数,步骤如下: 1. 将十六进制数 1A 转换十进制数,使用 hexdec() 函数,得到十进制数 26。 2. 将十进制数 26 转换八进制数,使用 decoct() 函数,得到八进制数 32。 因此,十六进制数 1A 转换八进制数为 32。 十六进制十进制:使用 PHP 内置函数 hexdec(),将十六进制转换十进制数。例如,将十六进制数 1A 转换十进制数,直接使用 hexdec() 函数,得到十进制数 26。因此,十六进制数 1A 转换十进制数为 26。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值