十六进制转十进制_蓝桥杯
问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
package jiChuLianXi; import java.util.Scanner; public class HexadecimaToDecimal1{ public static long hTd(String s){ long res = 0; //此处要用长整型,因为8位十六进制数转换成的十进制数已经超过int的最大值 int len = s.length(); // System.out.println(len); for(int i=0; i<len; i++){ if('0'<=s.charAt(i) && s.charAt(i)<='9') res += (s.charAt(i)-'0')*Math.pow(16, len-i-1); else res += (s.charAt(i)-'A'+10)*Math.pow(16, len-i-1); // System.out.println((s.charAt(i)-'A'+10)*Math.pow(16, len-i-1)); } return res; } public static void main(String argv[]){ Scanner scanner = new Scanner(System.in); String str = scanner.next(); scanner.close(); System.out.println(hTd(str)); } }
另外,Java拥有非常强大的库!
/** * 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。 * 注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。 */ package jiChuLianXi; import java.util.Scanner; public class HexadecimaToDecimal { public static void main(String argv[]){ Scanner scanner = new Scanner(System.in); String hex_num = scanner.nextLine(); long dec_num = Long.parseLong(hex_num, 16); //第二个参数是10就转换成十进制,是16就转换成十六进制 scanner.close(); System.out.println(dec_num); } }