题目
提示用户将一个十六进制数作为字符串输入,然后使用以下方法将该数转换为一个十进制数:
public static int hexToDecimal(String hex)
算法
int decimalValue=0;
for (int i=0;i<hex.length();i++){
char hexChar=hex.charAt(i);
decimalValue=decimalValue*16+hexCharToDecimal(hexChar);
}
完整的程序代码如下
public class ChapterSix {
public static void main(String[] args) {
Scanner input =new Scanner(System.in );
System.out.print("Enter a hex number:");
String hex=input.nextLine();
System.out.println("The decimal value for hex number "+hex +" is "+hexToDecimal(hex.toUpperCase()));
}
public static int hexToDecimal(String hex) {
int decimalValue=0;
for(int i=0;i<hex.length();i++) {
char hexChar=hex.charAt(i);
decimalValue=decimalValue*16+hexCharToDecimal(hexChar);
}
return decimalValue;
}
public static int hexCharToDecimal(char ch) {
if(ch>='A'&&ch<='F')
return 10+ch-'A';
else
return ch-'0';
}
}
运行结果:
输入 | 输出 |
---|---|
AB8C | 43916 |
CC5F | 52319 |