• 常用进制转换


    常用进制转换

    除了10进制,其他几种在JAVA 中几个进制的表示:

    二进制

    比如 int a = 1;表示应该是 0001.是四位的,但是前面的全是0可以不显示。由于二进制表示太长了,因此一般不用,eclipse 也不会显示出来。听说JDK 1.7 以上 二进制是0b 开头,由于JDK BUG 原因,一直没有,大家自己去了解吧。

    八进制:

    八进制是就有前缀了,以0开头,比如010 ,转换成十进制是8.。在程序转换中,打印前面的0也被省略了。他的范围值 0~7.如果你看见1238,这种,就肯定不是八进制了。

    16进制:

    前缀是0x.比如:0x10,表示16.表示范围是:0~9,A (10)B(11)C(12)D(13)E(14)F(15),如果是:0xFF = 255.

    上面的转换,我默认全是10进制的转换,下面我们看看 是如何转换的。

    转换原则:从非0开始计算,用默认进制为底数,当前位置为减-1,为幂,乘以当前位置的数。所有结果相加。

    二进制转换:因为二进制只能0,1 因此就省略了 * 1.

    0111 = 7,   2^(3-1) + 2^(2-1)+2^(1-1) = 4+2+1. 

    0101 = 5,   2^(3-1) +2^(1-1) = 4+1. 

    八进制转:

    010 = 8,       8^(2-1)*1= 8

    012 = 10,   8^(2-1)*1 +2 = 8+2

    036 = 30,     8^(2-1)*3+6 = 24+6

    0236 = 158, 8^(3-1)*2+8^(2-1)*3+6 = 128 + 24+6

    16进制转换:

    0x10 = 16,         16^(2-1)*1 + 0 = 16 + 0

    0x1A =  26,      16^(2-1)*1 +10(A) = 16+10

    0x2AF = 687,     16^(3-1)*2+16^(2-1)*10 +15(F) = 512 + 160 + 15

    // 将10进制,转换成其他进制
    		// 转换成二进制
    		System.out.println(Integer.toBinaryString(12));
    		// 转换成8进制
    		System.out.println(Integer.toOctalString(12));
    		// 转换成16进制
    		System.out.println(Integer.toHexString(12));
    		
    		
    // 将其他进制转换为10进制 ,默认只能转2~36 进制。
    		// 二进制转换
    		System.out.println(Integer.parseInt("101", 2));
    		// 会出错,因为 二进制只能有01
    		//System.out.println(Integer.parseInt("21", 2));
    		// 8进制转换
    		System.out.println(Integer.parseInt("021", 8));
    		// 16进制转为
    		System.out.println(Integer.parseInt("021", 17));
    		// 5进制转换
    		System.out.println(Integer.parseInt("021", 5));
    		// 会出错,因为 5进制,不能有6
    		//System.out.println(Integer.parseInt("061", 5));
    		// 出错,超出转换范围
    		//System.out.println(Integer.parseInt("021", 37));
    
    		// 这个和上面类似,只是返回是Integer,上面返回的是int,看源码就知道了
    		System.out.println(Integer.valueOf("010", 8));
    

      

  • 相关阅读:
    $ [Contest #4]$求和 思博题
    洛谷$P1864 [NOI2009]$二叉查找树 区间$dp$
    洛谷$P4045 [JSOI2009]$密码 $dp$+$AC$自动机
    $bzoj2560$ 串珠子 容斥+$dp$
    洛谷$P1600$ 天天爱跑步 树上差分
    $loj526 [LibreOJ eta Round #4]$ 子集 图论
    $CF888G Xor-MST$ 最小生成树
    $bzoj4152 The Captain$ 最短路
    洛谷$P3645 [APIO2015]$雅加达的摩天楼 最短路
    $bzoj4722$ 由乃 搜索
  • 原文地址:https://www.cnblogs.com/harry335/p/4441492.html
Copyright © 2020-2023  润新知