JAVA进制转换-对不同位数的转换方法
- 实例
- 结果
- 代码
- 补叙
实例
第一个输入参数设为被转换的数值,第二个输入参数设为源来的位数,第三个输入参数设为目标的位数。
java"> /*** 位数转换* args[0] 被转换值* args[1] 源位数* args[2] 目标位数*/public static void main(String[] args) {// from -2147483648 to 2147483647System.out.println(Integer.toString(Integer.parseInt(args[0], Integer.valueOf(args[1])), Integer.valueOf(args[2])));// from -9223372036854775808 to 9223372036854775807System.out.println(Long.toString(Long.parseLong(args[0], Integer.valueOf(args[1])), Integer.valueOf(args[2])));// Big SizeSystem.out.println(new BigInteger(args[0], Integer.valueOf(args[1])).toString(Integer.valueOf(args[2])));}
对于不同的数值范围可以分别采用Integer, Long和BigInteger。Integer和Long的parse***方法都可以指定位数生成源进制数值,然后通过toString方法指定目标位数生成目标进制数值。BigInteger在创建实例时就可以指定位数生成源进制数值,同样地再通过目标位数生成目标进制数值。
结果
70
代码
查看进制转换代码
补叙
Integer和Long对不同进制输出还分别有对应的方法,可以不需要另外指定进制。
java"> public static String toHexString(int i) {return toUnsignedString0(i, 4);}public static String toOctalString(int i) {return toUnsignedString0(i, 3);}public static String toBinaryString(int i) {return toUnsignedString0(i, 1);}