如何将十六进制字符串转换为32位二进制字符串?我做了
String binAddr = Integer.toBinaryString(Integer.parseInt(hexAddr, 16));
要获取二进制字符串,但我需要用0来填充以确保其32位,我该怎么做,最好使用Formatter?
答案 0 :(得分:0)
String binAddr = Integer.toBinaryString(Integer.parseInt(hexAddr, 16));
String.format("%032", new BigInteger(binAddr));
这里的想法是暂时将字符串解析为十进制数字(恰好包含所有1和0),然后使用String.format()
。
请注意,您基本上必须使用BigInteger,因为如果您尝试使用Integer.fromString()
或Long.fromString()
,二进制字符串会快速溢出Integer和Long,从而导致NumberFormatExceptions。