题解 | #进制转换#
进制转换
http://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
//递归截取最后一位直至剩下16进制标志"0X"停止
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
String s = in.nextLine().toUpperCase();
int result=0;
int r=1;
String last;
while(!"0X".equals(s)){
last=s.substring(s.length()-1);
switch(last){
case "A":
result+=10*r;
break;
case "B":
result=result+11*r;
break;
case "C":
result+=12*r;
break;
case "D":
result+=13*r;
break;
case "E":
result+=14*r;
break;
case "F":
result+=15*r;
break;
default:
result+=Integer.parseInt(last)*r;
break;
}
s=s.substring(0,s.length()-1);
r=r*16;
}
System.out.println(result);
}
}
}