Java语言程序设计基础篇_编程练习题18.24 (将十六进制数转换为十进制数)

题目:18.24 (将十六进制数转换为十进制数)

编写一个递归方法,将一个字符串形式的十六进制数转换为一个十进制数。方法头如下:

java 复制代码
public static int hex2Dec(String hexString)

编写一个测试程序,提示用户输入一个十六进制字符串,然后显示等价的十进制数。

代码示例

编程练习题18_24ConvertHexadecimalToDecimal.java

java 复制代码
package chapter_18;

import java.util.Scanner;

public class 编程练习题18_24ConvertHexadecimalToDecimal {
	private static int pow = 0;
	private static int decimal = 0;
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.print("Enter a hexadecimal number: ");
		String hex = input.next();
		System.out.println(hex2Dec(hex));
		input.close();
	}
	public static int hex2Dec(String hexString){
		if(hexString.length()==0)
			return decimal;
		char ch = hexString.charAt(hexString.length()-1);
		int value = 0;
		if(ch>='A'&&ch<='F') {
			value = (int)ch-55;
		}else
			value = Integer.valueOf(ch+"");
		decimal += value * (int)Math.pow(16, pow);
		pow++;
		return hex2Dec(hexString.substring(0,hexString.length()-1));
	}

}
输出结果
java 复制代码
Enter a hexadecimal number: 1A3F
6719
相关推荐
JaneYork3 分钟前
接口设计,接口返回信息,当账号不存在时候,应该返回200还是500,是直接返回R.fail()还是throw exception
java·spring boot
qianmoq8 分钟前
轻松掌握Java多线程 - 第二章:线程的生命周期
java·后端
风象南9 分钟前
Spring Boot 实现文件断点续传
java·spring boot·后端
Tadecanlan12 分钟前
[C++面试] 智能指针面试点(重点)续4
开发语言·c++·面试
Lecea_L15 分钟前
你能在K步内赚最多的钱吗?用Java解锁最大路径收益算法(含AI场景分析)
java·人工智能·算法
Tony8817 分钟前
热题100 - 394. 字符串解码
java·算法
cwtlw20 分钟前
JavaRedis和数据库相关面试题
java·数据库·笔记·面试
XF鸭21 分钟前
身份证正则表达式详解
java
快乐点吧22 分钟前
【Word】批注一键导出:VBA 宏
开发语言·c#·word
Lecea_L23 分钟前
🔍 找到数组里的“节奏感”:最长等差子序列
java·算法