2011-11-20 305 views
0

如何将十六进制字符串转换为32位二进制字符串?我做将十六进制字符串转换为32位二进制字符串

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

为了得到二进制串,但我需要填充它用0,以确保其32位,我怎么能做到这一点,最好用格式化?

+0

[(Java)指定将二进制数字转换为字符串时的位数(长度)](http://stackoverflow.com/questions/625838/java-specify-number-of-bits-length-当转换二进制数到字符串) – 2011-11-20 09:02:47

+0

更简单的答案在这里虽然... – jkschneider

回答

0
String binAddr = Integer.toBinaryString(Integer.parseInt(hexAddr, 16)); 
String.format("%032", new BigInteger(binAddr)); 

这里的想法是解析字符串返回的十进制数暂时(一说只是恰巧包括所有的1和0),然后使用String.format()

请注意,您基本上必须使用BigInteger,因为如果您尝试使用Integer.fromString()Long.fromString(),则二进制字符串会快速溢出整型和长整型,从而导致NumberFormatExceptions。

相关问题