下面的例子是16进制串转换成3进制串输出。
其他进制之间的相互转换,只需改动一下下面代码中有注释的地方。
import java.util.Scanner;
public class jinzhizhuanhuan {
private static int getRealValue(char x)
{
if(x>='0' && x<='9') return x-'0';
if(x>='a' && x<='f') return x-'a'+10;
if(x>='A' && x<='F') return x-'A'+10;
return 0;
}
public static String jin_zhi_16_3(String x) {
int n = 0; // 累加真值
for(int i=0; i<x.length(); i++)
{
n = 16*n + getRealValue(x.charAt(i)); //
}
String t = "";
for(;;)
{
if(n==0) break;
t = (n % 3) + t; //
n = n / 3; //
}
return t;
}
public static void main(String[] args) {
String x = "";
Scanner input = new Scanner(System.in);
while(input.hasNext()){
x = input.next();
String t = jin_zhi_16_3(x);
System.out.println(t);
}
}
}