import java.util.Scanner;
public class Text {
public static void main(String[] args) {
System.out.print("Input a decimal number : ");
Scanner input=new Scanner(System.in);
int decimalNum=input.nextInt();
System.out.println("Hex number is "+decimalToHex(decimalNum)+"H");
System.out.print("Input a hex number : ");
String hexNum=input.next();
System.out.println("Decimal number is "+hexToDecimal(hexNum.toUpperCase()));//toUpperCase()使输入的字母可以不区分大小写
}
public static String decimalToHex(int decimal) {
String hex="";
while(decimal!=0) {
int value=decimal%16;
hex=toHexChar(value)+hex;//不能简单的hex+=toHexChar(value);因为输出的字符串有顺序
decimal/=16;
}
return hex;
}
public static char toHexChar(int hexValue) {
if(hexValue>=10&&hexValue<=15)
return (char)(hexValue-10+'A');
else
return (char)(hexValue+'0');
}
public static int hexToDecimal(String hex) {
int decimal=0;
for(int i=0;i<hex.length();i++) {
char hexChar=hex.charAt(i);
decimal=decimal*16+hexCharToDecimal(hexChar);//高效算法
}
return decimal;
}
public static int hexCharToDecimal(char ch) {
if(ch>='A'&&ch<='F')
return ch-'A'+10;
else
return ch-'0';
}
}
十六进制转换的高效算法
最新推荐文章于 2025-05-30 09:54:52 发布
本文介绍了一个Java程序,该程序能够实现十进制数与十六进制数之间的相互转换。通过两个核心方法decimalToHex和hexToDecimal,文章详细展示了如何将十进制整数转换为十六进制字符串形式,以及如何将十六进制字符串解析回十进制数值。

2190

被折叠的 条评论
为什么被折叠?



