华为笔试:进制转换
题目大意:
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
输入描述:
输入一个十六进制的数值字符串。输出描述:
输出该数值的十进制字符串。输入例子1:
0xA输出例子1:
10
思路:
考察位运算,按位转换即可
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()) {
String line = sc.nextLine();
int len = line.length();
long result = 0;
for(int i = 2; i < len; i++) {
char c = line.charAt(i);
int j = 0;
if(c >= 'A' && c <= 'F') {
j = 10 + (c - 'A');
}else if(c >= '0' && c <= '9'){
j = c - '0';
}
result |= (j << (len - 1 - i) * 4);
}
System.out.println(result);
}
sc.close();
}
}
注:学渣心里苦,不要学楼主,平时不努力,考试二百五,哭~