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


    在JAVA面试题中 有时会出现进制间的转换,

    十进制转二进制

    十进制转二进制,即十进制除二取余数

    余数为权位上的数,得到商,继续除二,直到商为0

    如:150/2=75  ----0

      75/2=37 -------1

      37/2=18--------1

      18/2=9---------0

      9/2=4---------1

      4/2=2-------0

      2/2=1--------0

      1/2=0---------1

    从最后一个余数开始读到第一个 就是该十进制的二进制--10010110

    如果是负数150 先取反 01101001  然后在加1                   01101010

    二进制转为十进制数 以 10010110 为例子

    1*2(7次方)+0*2(6次方)+0*2(5次方)+1*2(4次方)+0*2(3次方)+1*2(2次方)+1*2(1次方)+0*2(0次方)=150;

    150二进制转换为八进制的数为226

    10  010 110     1,从右到左,不足时补零。 2,取三合一  3,按权展开求和

             010                   010                         110

     0*2(2次方)+1*2(1次方)+0*2(0次方)       0*2(2次方)+1*2(1次方)+0*2(0次方)           1*2(2次方)+1*2(1次方)+0*2(0次方)

            2                                             2                         6

    八进制转换二进制

            2                                                                             2                          6

          2/2=1;----0                  2/2=1;----0                  6/2=3 --- 0  3/2=1 --1

          1/2=0;-----1;                 1/2=0;-----1;                    1/2=0; --1

    从下至上 取三位 不足时在最左边补0

        0-10                      0-10                                                                             110

    二进制转换成16进制

              1                      0010                          1100

    从右至左 取四合一,不足时补零 

            00001                                                                  0010                                                                                          1100

    0*2(3次方)+0*2(2次方)+0*2(1次方)+1*2(0次方)=1;0*2(3次方)+0*2(2次方)+1*2(1次方)+1*2(0次方)=2;1 *2(3次方)+1*2(2次方)+0*2(1次方)+0*2(0次方)=12=c

    12c

    十六进制转二进制

             1                            2                    c

            1/2=0  ----1                      2/2=1 ----0                12/2=6   ---0

                                       1/2=0 -----1                6/2=3 ---0

                                                             3/2=1-1

                                                             1/2=0 1

    不足在最左边补零   0001                                                              0010                                                                   1100          

    从有效位开始看得到 100101100

        十进制,转八进制  。     和十进制转十六进制

        150/8=18 ---6        150/16=9---6

        18/8=2 ----2          9/16=0---9;

        2/8=0-- ---2  

        226             96

      八进制转十进制            十六进制转十进制

    按照权展开

      2*8(2次方)+2*8(1次方)+2*8(0次方)=150;    9*16(1次方)+6*16(0次方)=150;

    十六进制和八进制之间的转换

      第一种 先转成二进制 然后再进行相互转换

      第二种 先转换成十进制,然后再进行相互转换

    总结:

      进制间的转换要注意两者之间权的对应关系

      不能直接转换的可通过间接转换的方法进行转换。

  • 相关阅读:
    Java代理(jdk静态代理、动态代理和cglib动态代理)
    Hive安装
    Spark 集群安装
    Flume 远程写HDFS
    Spark Idea Maven 开发环境搭建
    oracle 通不过网络的原因
    oracle一些基本问题
    linux-redhat配置yum源
    liunx虚拟机网络连接
    redhat安装jdk、tomcat、mysql
  • 原文地址:https://www.cnblogs.com/gudeyeyu/p/9227562.html
Copyright © 2020-2023  润新知