题目
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示
- 示例1
- 输入
0xA
0xAA - 输出
10
170
代码
package org.lht.boot.lang.suanfa;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
/**
* @author haitao.li
* @description: 写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
* @date 2021/4/2 16:02
*/
public class Huawei进制转换 {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String str = null;
while ((str = bufferedReader.readLine()) != null) {
String substring = str.substring(2);
int total = 0;
for (int i = substring.length() - 1, j = 0; i >= 0; i--, j++) {
if (substring.charAt(i) > 57) {
total = total + (substring.charAt(i) - 55) * (int)Math.pow(16, j);
} else {
total = total + (substring.charAt(i) - 48) * (int)Math.pow(16, j);
}
}
System.out.println(total);
}
}
}
直接转换进制的方法
//AAA转换为16进制
long aaa = Long.parseLong("AAA", 16);
System.out.println(aaa);