题解 | #进制转换#
进制转换
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进制#