进制转换
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。(多组同时输入 )
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。
输入
0xA
输出
10
要了解进制转换的公式,其实就是每位* 16,依次相加即可
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
long num = 0;
for (int i = 2; i < line.length(); i++) {
num *= 16;
char ch = line.charAt(i);
int n = 0;
if (ch >= 'A' && ch <= 'F') {
n = ch - 'A' + 10;
} else if (ch >= 'a' && ch <= 'f') {
n = ch - 'a' + 10;
} else {
n = ch - '0';
}
num += n;
}
System.out.println(num);
}
}
}
每位* 16,依次相加即可,类似于问你556有多少个1,5*10个十位加5,55*10个个位加6。
得到556个1.
来源:牛客网