题解 | #进制转换#
进制转换
http://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
//当下一行有输入时
while (in.hasNextLine()) {
String s = in.nextLine(); //用字符串表示十六进制数
int count = 0; //表示十进制结果
//越过0x,从第三个字符开始循环
for (int i = 0; i < s.length() - 2; i++) {
char tc = s.charAt(i + 2);//取出字符
int t = 0; //表示字符对应的十进制数
//十六进制转换为十进制
if (tc >= '0' && tc <= '9')
t = tc - '0';
else if (tc >= 'A' && tc <= 'F')
t = tc - 'A' + 10;
else if (tc >= 'a' && tc <= 'f')
t = tc - 'a' + 10;
//乘上它所在位置对应的十八的N次方
count += t * Math.pow(16, s.length() - 2 - i - 1);
}
System.out.println(count);
}
}
}