java基础之进制之间的转换

本文详细介绍了Java中的进制转换,包括二进制、十进制、八进制和十六进制之间的转换规则,并提供了示例代码来展示如何进行这些转换。

java基础之进制之间的转换

进制的介绍

对于整数,有四种表示方式

  • 二进制:0,1 ,满 2 进 1.以 0b 或 0B 开头。
  • 十进制:0-9 ,满 10 进 1。
  • 八进制:0-7 ,满 8 进 1. 以数字 0 开头表示。
  • 十六进制:0-9 及 A(10)-F(15),满 16 进 1. 以 0x 或 0X 开头表示。此处的 A-F 不区分大小写。

进制演示

public static void hexadecimalDemo(){
      //n1 二进制(以 0b 或 0B 开头)
      int n1 = 0b1010;
      //n2 10 进制
      int n2 = 1010;
      //n3 8 进制 ,以数字 0 开头表示。
      int n3 = 01010;
      //n4 16 进制,以 0x 或 0X 开头表示。此处的 A-F 不区分大小写。
      int n4 = 0X10101;
    System.out.println("n1=" + n1);
    System.out.println("n2=" + n2);
    System.out.println("n3=" + n3);
    System.out.println("n4=" + n4);
    System.out.println(0x23A);

    System.out.println("*************进制图示****************");
    System.out.println("十进制\t十六进制\t八进制\t二进制");
    System.out.println("0\t\t\t\t0\t\t\t\t0\t\t\t\t0");
    System.out.println("1\t\t\t\t1\t\t\t\t1\t\t\t\t1");
    System.out.println("2\t\t\t\t2\t\t\t\t2\t\t\t\t10");
    System.out.println("3\t\t\t\t3\t\t\t\t3\t\t\t\t11");
    System.out.println("4\t\t\t\t4\t\t\t\t4\t\t\t\t100");
    System.out.println("5\t\t\t\t5\t\t\t\t5\t\t\t\t101");
    System.out.println("6\t\t\t\t6\t\t\t\t6\t\t\t\t110");
    System.out.println("7\t\t\t\t8\t\t\t\t7\t\t\t\t111");
    System.out.println("8\t\t\t\t8\t\t\t\t10\t\t\t1000");
    System.out.println("9\t\t\t\t9\t\t\t\t11\t\t\t1001");
    System.out.println("10\t\t\tA\t\t\t\t12\t\t\t1010");
    System.out.println("11\t\t\tB\t\t\t\t13\t\t\t1011");
    System.out.println("12\t\t\tC\t\t\t\t14\t\t\t1100");
    System.out.println("13\t\t\tD\t\t\t\t15\t\t\t1101");
    System.out.println("14\t\t\tE\t\t\t\t16\t\t\t1110");
    System.out.println("15\t\t\tF\t\t\t\t17\t\t\t1111");
    System.out.println("16\t\t\t10\t\t\t20\t\t\t10000");
    System.out.println("17\t\t\t11\t\t\t21\t\t\t10001");

  }

进制之间的转换

进制转换第一组
  • 二进制转十进制

规则:从最低位(右边)开始,将每个位上的数提取出来,乘以2的(位数-1)次方。然后求和。
案例:请将0b1011转成十进制的数

  //TODO 0b1011 =1*2的(1-1)次方 + 1*2的(2-1)次方 + 0*2的(3-1)次方 + 1*2的(4-1)次方 = 1 + 2 + 0 + 8 = 11
  System.out.println(0b1011);//11
  • 八进制转十进制

规则:从最低位(右边)开始,将每个位上的数提取出来,乘以8的(位数-1)次方。然后求和。
案例:请将0234转成十进制的数

 //TODO 0234 =4*8^0 + 3*8^1 + 2*8^2 = 4 + 24 + 128 = 156
   System.out.println(0234);//156

  • 十六进制转十进制

规则:从最低位(右边)开始,将每个位上的数提取出来,乘以 16 的(位数-1)次方,然后求和。
案例:请将0x23A转成十进制的数

//TODO 0x23A =10*16^0 + 3*16^1 + 2*16^2 = 10 + 48 + 512 = 570
   System.out.println(0x23A);//156
进制转换第二组
  • 十进制转二进制

规则:将该数不断除以 2,直到商为 0 为止,然后将每步得到的余数倒过来,就是对应的二进制。
案例:案例:请将 34 转成二进制

 /**
      *  2|_34__ 0
      *  2|_17__ 1
      *  2|_8__  0
      *  2|_4__  0
      *  2|_2__  0
      *     1
      *
      * TODO 组装在一起就是:ob + 100010 = 0b100010
      */
  • 十进制转八进制

规则:将该数不断除以 8,直到商为 0 为止,然后将每步得到的余数倒过来,就是对应的八进制。
案例:请将 131 转成八进制

 /**
    * 8|_131__ 3
    * 8|_16__ 0
    *    2
    *
    * TODO 组装在一起就是:0203
    *
    */
  • 十进制转十六进制

规则:将该数不断除以 16,直到商为 0 为止,然后将每步得到的余数倒过来,就是对应的十六进制。
案例:请将 237 转成十六进制

   /**
     * 16|_237__ 13
     *     14
     *
     * TODO 组装在一起就是:14在十六进制中对应的E,13在十六进制中对应的D,所以结果是0xED
     *
     */
进制转换第三组
  • 二进制转八进制

规则:从低位开始,将二进制数每三位一组,转成对应的八进制数,然后倒过来前面加0即可。
案例:请将 ob11010101 转成八进制

   /**
     * ob11010101按三位拆分成组
     * : 101 = 5
     * : 010 = 2
     * : ob11 = 3
     *
     *  TODO 组装起来就是:0325
     *
     */
  • 二进制转十六进制

规则:从低位开始,将二进制数每四位一组,转成对应的十六进制数,然后倒过来前面加0x即可。
案例:请将 ob11010101 转成十六进制

   /**
     * 0101 ==5
     * ob1101 == D
     *
     * TODO 组装起来就是:0xD5
     */
进制转换第四组
  • 八进制转二进制

规则:将八进制数每 1 位,转成对应的一个 3 位的二进制数即可。
案例:请将 0237 转成二进制

    /**
     * 02 == 010
     * 3 == 011
     * 7 == 111
     *
     * TODO 组装起来就是:0b 010 011 111
     *
     */
  • 十六进制转换成二进制

规则:将十六进制数每 1 位,转成对应的 4 位的一个二进制数即可。
案例:请将 0x23B 转成二进制

  /**
     * 0x2 == 0010
     * 3   ==  0011
     * B   ==   1011
     *
     * TODO 组装起来就是:0b0010 0011 1011
     */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

双木林L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值