题目回顾
十六进制与十进制的转换,输入一个十六进制字符串,转换成十进制数输出。
解题思路
遍历字符串,把字符0~9的当做一类处理,字符A ~ F的当做一类处理,转成整数后按照转换规则对每一位进行指数、乘法操作并累加就好啦。
代码(Java)
import java.util.Scanner;
/**
* @author : flower48237
* @version: 2020年3月11日 下午9:12:13
* @note : OX to Ten
*/
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
String str = in.nextLine();
//用long定义sum是为了防止溢出
long sum = 0;
int len = str.length();
for (int i = 0; i < len; i++) {
char ch = s.charAt(i);
if ('1' <= ch && ch <= '9') {
sum += (ch - '0' + 1) * Math.pow(16, len - i - 1);
} else if ('a' <= ch && ch <= 'f') {
sum += (ch - 'a' + 10) * Math.pow(16, len - i - 1);
}
}
System.out.print(sum);
}
}