通用方法:
任意进制,转,任意进制
String s7="64";
String s10=new BigInteger(s7,7).toString(10);
String s11=new BigInteger(s7,7).toString(11);
String s12=new BigInteger(s7,7).toString(12);
String s13=new BigInteger(s7,7).toString(13);
String s16=new BigInteger(s7,7).toString(16);
System.out.println("10进制"+s10);
System.out.println("11进制"+s11);
System.out.println("12进制"+s12);
System.out.println("13进制"+s13);
System.out.println("16进制"+s16);
String result = new BigInteger( “数字字符串” , 旧进制 ).toString( 新进制 );
当然还有其他的,比如Integer,Long等基本数据类型的类里封装有转换的方法。
//将10156按8进制转成10进制数的一个Integer对象
Integer a10=Integer.valueOf("10156", 8);
//将10156按8进制转成10进制数的一个int数据
int b10=Integer.parseInt("10156", 8);
//将10进制数b10转换成8进制数,以字符串形式输出
String a8=Integer.toString(b10,8);
System.out.println(a10);
System.out.println(b10);
System.out.println(a8);
valueof和parseInt一般可以通用,只是返回值类型不同,可以按需要的内容使用
Long和上面基本类似,都有类似的方法。
任意数转10进制数
Integer a10=Integer.valueOf("10156", 8);
Long c10=Long.valueOf("10156", 8);
int b10=Integer.parseInt("10156", 8);
long d10=Long.parseLong("10156", 8);
10进制数转任意进制
String a8=Integer.toString(10156,8);
String c8=Long.toString(10156, 8);
当然也可以自己写一个函数利用进制转换公式,计算得出结果,锻炼自己,如果是平常应用的话,直接调用就好。
注意:字符串可以带字母,但前提是进制必须符合带字母的条件,比如16进制允许出现ABCDE,大小写都可以用