在 java 中将包含 64 位的二进制字符串转换为十六进制?
convert a binary String containing 64bits to hexadecimal in java?
我正在尝试使用以下代码将这个包含 64 位的二进制字符串转换为十六进制:
String mm = "1000010111101000000100110101010000001111000010101011010000000101";
String v = new BigInteger(mm, 2).toString(16);
v=String.format("%64x", v);
但它给了我这个例外:
Exception in thread "main" java.util.IllegalFormatConversionException: x != java.lang.String
at java.util.Formatter$FormatSpecifier.failConversion(Unknown Source)
at java.util.Formatter$FormatSpecifier.printInteger(Unknown Source)
at java.util.Formatter$FormatSpecifier.print(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.lang.String.format(Unknown Source)
at test.main(test.java:332)
哪里出了问题,为什么?
改变这个:
v=String.format("%64x", v);
到这个:
v=String.format("%s", v);
你还需要这个:
String v = new BigInteger(mm, 2).toString(16);
我正在尝试使用以下代码将这个包含 64 位的二进制字符串转换为十六进制:
String mm = "1000010111101000000100110101010000001111000010101011010000000101";
String v = new BigInteger(mm, 2).toString(16);
v=String.format("%64x", v);
但它给了我这个例外:
Exception in thread "main" java.util.IllegalFormatConversionException: x != java.lang.String
at java.util.Formatter$FormatSpecifier.failConversion(Unknown Source)
at java.util.Formatter$FormatSpecifier.printInteger(Unknown Source)
at java.util.Formatter$FormatSpecifier.print(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.lang.String.format(Unknown Source)
at test.main(test.java:332)
哪里出了问题,为什么?
改变这个:
v=String.format("%64x", v);
到这个:
v=String.format("%s", v);
你还需要这个:
String v = new BigInteger(mm, 2).toString(16);