您可以按照以下示例使用
BigInteger,特别是当您拥有
256位或更长的数字时:
String string = "10000010";
BigInteger biStr = new BigInteger(string, 2);
System.out.println("binary: " + biStr.toString(2));
System.out.println("hex: " + biStr.toString(16));
System.out.println("dec: " + biStr.toString(10));
另一个接受字节的示例:
String string = "The girl on the red dress.";
byte[] byteString = string.getBytes(Charset.forName("UTF-8"));
System.out.println("[Input String]: " + string);
System.out.println("[Encoded String UTF-8]: " + byteString);
BigInteger biStr = new BigInteger(byteString);
System.out.println("binary: " + biStr.toString(2));
System.out.println("hex: " + biStr.toString(16));
System.out.println("dec: " + biStr.toString(10));
结果:
[Input String]: The girl on the red dress.
[Encoded String UTF-8]: [B@70dea4e
binary: 101010001101000011001010010000001100111011010010111001001101100001000000110111101101110001000000111010001101000011001010010000001110010011001010110010000100000011001000111001001100101011100110111001100101110
hex: 546865206769726c206f6e20746865207265642064726573732e
您还可以将二进制转换为字节格式
try {
System.out.println("binary to byte: " + biStr.toString(2).getBytes("UTF-8"));
} catch (UnsupportedEncodingException e) {e.printStackTrace();}
注意:
您可以使用以下示例进行二进制格式的字符串格式化
String.format("%256s", biStr.toString(2).replace(' ', '0'));
byte
转换为二进制字符串吗? - SLaksBoolean
、Byte
、Short
、Char
、Int
和Long
类型的值转换为二进制数字字符串。https://dev59.com/WWox5IYBdhLWcg3wFAjW#54950845 - chaotic3quilibrium