题解 | #进制转换#
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Map;
import java.util.HashMap;
public class Main {
private static Map<Character,Integer> map = new HashMap();
static{
map.put('0',0);
map.put('1',1);
map.put('2',2);
map.put('3',3);
map.put('4',4);
map.put('5',5);
map.put('6',6);
map.put('7',7);
map.put('8',8);
map.put('9',9);
map.put('A',10);
map.put('B',11);
map.put('C',12);
map.put('D',13);
map.put('E',14);
map.put('F',15);
map.put('a',10);
map.put('b',11);
map.put('c',12);
map.put('d',13);
map.put('e',14);
map.put('f',15);
}
private static final int BASE = 16;
public static int getNum(Character numChr,int i){
int num = map.get(numChr);
for(int j=0;j<i;j++){
num = num * BASE;
}
return num;
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine().replace("0x","");
char [] arr = str.toCharArray();
int num = 0;
for(int i=0;i<arr.length;i++){
num = getNum(arr[i],arr.length-i-1) + num;
}
System.out.println(num);
}
}
#5目标串字母数字16进制转2进制#