import java.util.Scanner;
public class Month {
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.println("输入一个16进制的数字");
String hex=input.nextLine();//从键盘上读入一个16进制的数
System.out.println("转成10进制后的数值为:"+hexToDecimal(hex.toUpperCase()));/*
调用hexToDecimal方法(调用之前将从键盘上读入的16进制字符串中的小写字母转换成大写字母)*/
}
public static int hexToDecimal(String hex1){//定义一个方法,使16进制数转化成10进制数并返回一个整型值
int decimal=0;//初始化转化后的10进制数值
for (int i=0;i<hex1.length();i++){
char c=hex1.charAt(i);
decimal=decimal*16+hexCharToDecimal(c);/*霍纳算法:将16进制字符串转换为10进制数值;
调用hexCharToDecimal方法
*/
}
return decimal;//返回转换后的10进制数值
}
public static int hexCharToDecimal(char c1){//定义方法,将16进制字符串中的字符转换成数值
if (c1>='A'&&c1<='F')
return c1-'A'+10;//如果16进制字符串中读入的字符为字母(A-F)返回10-15;
else
return c1-'0';//如果16进制字符串中读入的字符为0-9,返回0-9;
}
}
将16进制数转化成10进制数
最新推荐文章于 2021-03-09 21:44:05 发布