gpt4 book ai didi

java - 将十六进制字符串(hex)转换为二进制字符串

转载 作者:太空宇宙 更新时间:2023-11-04 13:56:42 26 4
gpt4 key购买 nike

我发现了以下十六进制到二进制转换的方法:

String binAddr = Integer.toBinaryString(Integer.parseInt(hexAddr, 16)); 

虽然此方法适用于较小的十六进制数字,但如下所示的十六进制数字

A14AA1DBDB818F9759

抛出NumberFormatException。

因此,我编写了以下似乎有效的方法:

private String hexToBin(String hex){
String bin = "";
String binFragment = "";
int iHex;
hex = hex.trim();
hex = hex.replaceFirst("0x", "");

for(int i = 0; i < hex.length(); i++){
iHex = Integer.parseInt(""+hex.charAt(i),16);
binFragment = Integer.toBinaryString(iHex);

while(binFragment.length() < 4){
binFragment = "0" + binFragment;
}
bin += binFragment;
}
return bin;
}

上述方法基本上获取十六进制字符串中的每个字符,并将其转换为其二进制等效值,如有必要,用零填充它,然后将其连接到返回值。这是执行转换的正确方法吗?或者我是否忽略了一些可能导致我的方法失败的事情?

预先感谢您的帮助。

最佳答案

BigInteger.toString(radix)会做你想做的事。只需传入基数 2 即可。

static String hexToBin(String s) {
return new BigInteger(s, 16).toString(2);
}

关于java - 将十六进制字符串(hex)转换为二进制字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29750184/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com