题解 | #进制转换#
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
String hexa = in.nextLine().toLowerCase();
int count = hexa.length();
int sum = 0;
int i = 0;
int base = 0;
while(count > 2){
i = count - 1;
switch(hexa.charAt(i)){
case '1':
sum += 1 * pow(16, hexa.length() -1 - i);
break;
case '2':
sum += 2 * pow(16, hexa.length() -1 - i);
break;
case '3':
sum += 3 * pow(16, hexa.length() -1 - i);
break;
case '4':
sum += 4 * pow(16, hexa.length() -1 - i);
break;
case '5':
sum += 5 * pow(16, hexa.length() -1 - i);
break;
case '6':
sum += 6 * pow(16, hexa.length() -1 - i);
break;
case '7':
sum += 7 * pow(16, hexa.length() -1 - i);
break;
case '8':
sum += 8 * pow(16, hexa.length() -1 - i);
break;
case '9':
sum += 9 * pow(16, hexa.length() -1 - i);
break;
case 'a':
sum += 10 * pow(16, hexa.length() -1 - i);
break;
case 'b':
sum += 11 * pow(16, hexa.length() -1 - i);
break;
case 'c':
sum += 12 * pow(16, hexa.length() -1 - i);
break;
case 'd':
sum += 13 * pow(16, hexa.length() -1 - i);
break;
case 'e':
sum += 14 * pow(16, hexa.length() -1 - i);
break;
case 'f':
sum += 15 * pow(16, hexa.length() -1 - i);
break;
}
count--;
base *= 16;
}
System.out.println(sum);
}
public static int pow(int base, int exponent){
int sum = 1;
if(exponent == 0){
return 1;
}else{
while(exponent > 0){
sum *= base;
exponent--;
}
return sum;
}
}
}
查看28道真题和解析