将十六进制字符串转换为二进制字符串

2022-09-03 03:12:17

我想将十六进制字符串转换为二进制字符串。例如,十六进制 2 是 0010。代码如下:

String HexToBinary(String Hex)
{
    int i = Integer.parseInt(Hex);
    String Bin = Integer.toBinaryString(i);
    return Bin;
}

但是,这仅适用于十六进制0 - 9;它不适用于十六进制 A - F,因为它使用 .任何人都可以增强它吗?int


答案 1

你需要告诉 Java int 是十六进制的,就像这样:

String hexToBinary(String hex) {
    int i = Integer.parseInt(hex, 16);
    String bin = Integer.toBinaryString(i);
    return bin;
}

答案 2

接受的版本仅适用于 32 位数字。

下面是适用于任意长度的十六进制字符串的版本:

public static String hexToBinary(String hex) {
    return new BigInteger(hex, 16).toString(2);
}