HJ5
题目描述
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
输入描述:
输入一个十六进制的数值字符串。注意:一个用例会同时有多组输入数据,请参考帖子https://www.nowcoder.com/discuss/276处理多组输入的问题。
输出描述:
输出该数值的十进制字符串。不同组的测试用例用\n隔开。
示例1
输入
0xA
0xAA
输出
10
170
// 手动解析如下,还可以使用Integer.decode(str)方法解析,或是用Integer.parseInt(str,radis)radis为进制数
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()){
String str = scanner.nextLine();
StringBuilder stringBuilder=new StringBuilder(str.substring(2));
stringBuilder.reverse();
int res = 0;
for (int i = 0; i < stringBuilder.length(); i++) {
switch (stringBuilder.charAt(i)){
case 'A':{
res+= 10 * Math.pow(16,i);
break;
}
case 'B':{
res+= 11 * Math.pow(16,i);
break;
}
case 'C':{
res+= 12 * Math.pow(16,i);
break;
}
case 'D':{
res+= 13 * Math.pow(16,i);
break;
}
case 'E':{
res+= 14 * Math.pow(16,i);
break;
}
case 'F':{
res+= 15 * Math.pow(16,i);
break;
}
default:{
res += Integer.parseInt(stringBuilder.substring(i,i+1)) * Math.pow(16,i);
break;
}
}
}
System.out.println(res);
}
}
}