将16进制数转化成10进制数

mac2022-06-30  21

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; } }
最新回复(0)