将十六进制字符串转换为32位二进制字符串
问题描述:
如何将十六进制字符串转换为32位二进制字符串?我做将十六进制字符串转换为32位二进制字符串
String binAddr = Integer.toBinaryString(Integer.parseInt(hexAddr, 16));
为了得到二进制串,但我需要填充它用0,以确保其32位,我怎么能做到这一点,最好用格式化?
答
String binAddr = Integer.toBinaryString(Integer.parseInt(hexAddr, 16));
String.format("%032", new BigInteger(binAddr));
这里的想法是解析字符串返回的十进制数暂时(一说只是恰巧包括所有的1和0),然后使用String.format()
。
请注意,您基本上必须使用BigInteger,因为如果您尝试使用Integer.fromString()
或Long.fromString()
,则二进制字符串会快速溢出整型和长整型,从而导致NumberFormatExceptions。
[(Java)指定将二进制数字转换为字符串时的位数(长度)](http://stackoverflow.com/questions/625838/java-specify-number-of-bits-length-当转换二进制数到字符串) – 2011-11-20 09:02:47
更简单的答案在这里虽然... – jkschneider