Java 10进制转16进制
在Java中,有几种方法可以将10进制数转换为16进制表示,以下是几种常用的方法:

方法1:使用Integer.toHexString()
public class DecimalToHex {
public static void main(String[] args) {
int decimalNumber = 255;
String hexString = Integer.toHexString(decimalNumber);
System.out.println("10进制 " + decimalNumber + " 转换为16进制: " + hexString);
}
}
输出:
10进制 255 转换为16进制: ff
方法2:使用String.format()
public class DecimalToHex {
public static void main(String[] args) {
int decimalNumber = 255;
String hexString = String.format("%x", decimalNumber);
System.out.println("10进制 " + decimalNumber + " 转换为16进制: " + hexString);
}
}
输出:
10进制 255 转换为16进制: ff
方法3:使用Integer.toString() with radix参数
public class DecimalToHex {
public static void main(String[] args) {
int decimalNumber = 255;
String hexString = Integer.toString(decimalNumber, 16);
System.out.println("10进制 " + decimalNumber + " 转换为16进制: " + hexString);
}
}
输出:
10进制 255 转换为16进制: ff
方法4:手动转换算法
public class DecimalToHex {
public static void main(String[] args) {
int decimalNumber = 255;
String hexString = decimalToHex(decimalNumber);
System.out.println("10进制 " + decimalNumber + " 转换为16进制: " + hexString);
}
public static String decimalToHex(int n) {
char[] hexChars = "0123456789ABCDEF".toCharArray();
StringBuilder sb = new StringBuilder();
if (n == 0) {
return "0";
}
while (n > 0) {
int remainder = n % 16;
sb.append(hexChars[remainder]);
n = n / 16;
}
return sb.reverse().toString();
}
}
输出:

10进制 255 转换为16进制: FF
注意事项
- 所有方法都会返回小写字母表示的16进制数(除非手动转换时使用大写字母)
- 对于负数,Java会使用其补码形式表示
- 如果需要前缀"0x",可以使用
String.format("0x%x", decimalNumber)
处理大数
对于超过Integer.MAX_VALUE的大数,可以使用Long类:
long largeNumber = 123456789012345L;
String hexString = Long.toHexString(largeNumber);
System.out.println("大数转换为16进制: " + hexString);
