杰瑞科技汇

Java如何将10进制转为16进制?

Java 10进制转16进制

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

Java如何将10进制转为16进制?-图1
(图片来源网络,侵删)

方法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();
    }
}

输出:

Java如何将10进制转为16进制?-图2
(图片来源网络,侵删)
10进制 255 转换为16进制: FF

注意事项

  1. 所有方法都会返回小写字母表示的16进制数(除非手动转换时使用大写字母)
  2. 对于负数,Java会使用其补码形式表示
  3. 如果需要前缀"0x",可以使用String.format("0x%x", decimalNumber)

处理大数

对于超过Integer.MAX_VALUE的大数,可以使用Long类:

long largeNumber = 123456789012345L;
String hexString = Long.toHexString(largeNumber);
System.out.println("大数转换为16进制: " + hexString);
Java如何将10进制转为16进制?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇