使用java自带库函数,转换进制很easy!
1. 十进制转任意进制:
String str = Integer.toString(num,b);
num为待转十进制数,b为进制数, str为转换后结果。
常见的十进制转二进制、八进制、十六进制
十进制转化为二进制: Integer.toBinaryString(n);
十进制转化为八进制: Integer.toOctalString(n);
十进制转化为十六进制: Integer.toHexString(n);
2 任意进制转十进制:
int i = Integer.parseInt(str, b);
或者
Integer i = Integer.valueOf(str, b);
其中,str是待转任意进制数,b为进制数
----------
例如:13进制数42(13),转换为十进制:
System.out.println(Integer.parseInt("42", 13)+"");
或:
System.out.println(Integer.valueOf("42", 13)+"");
运行结果:54
那不使用库函数呢?
下面是一个任意进制转十进制的方法:
/**
* 任意进制转10进制
*
* @param num
* 待转数字
* @param b
* 进制
* @return
*/
public long b2ten(String num, int b) {
int ret = 0;
int leng = num.length();
for (int i = 0; i < leng; i++) {
if (num.charAt(i) - '0' >= b) {
return -1;
}
ret *= b;
ret += num.charAt(i) - '0';
}
return (long) ret;
}
至于十进制 ——>任意进制?还不知道!