gpt4 book ai didi

java - 在Java中将Base64转换为二进制字符串

转载 作者:行者123 更新时间:2023-12-01 17:02:30 24 4
gpt4 key购买 nike

我有以下 3 字节编码的 Base64 字符串。

    String base64_str = "MDQw";
System.out.println("base64:" + base64_str);
String hex = DatatypeConverter.printHexBinary(DatatypeConverter.parseBase64Binary(base64_str));

for (int i = 0; i < hex.length(); i+=6) {
String bytes = hex.substring(i, i+6);

System.out.println("hex: " + bytes);

StringBuilder binary = new StringBuilder();

int byte3_int = Integer.parseInt(bytes.substring(4, 6), 16);
String byte3_str = Integer.toBinaryString(byte3_int);
byte3_int = Integer.valueOf(byte3_str);
binary.append(String.format("%08d", byte3_int));

int byte2_int = Integer.parseInt(bytes.substring(2, 4), 16);
String byte2_str = Integer.toBinaryString(byte2_int);
byte2_int = Integer.valueOf(byte2_str);
binary.append(String.format("%08d", byte2_int));

int byte1_int = Integer.parseInt(bytes.substring(0, 2), 16);
String byte1_str = Integer.toBinaryString(byte1_int);
byte1_int = Integer.valueOf(byte1_str);
binary.append(String.format("%08d", byte1_int));

System.out.println("binary: " + binary);
}
}

我的输出是:

base64:MDQw
hex: 303430
binary: 001100000011010000110000

上面的输出是正确的,但是有没有更有效的方法将base64字符串转换为二进制字符串?

提前致谢。

最佳答案

您可以使用BigInteger(import java.math.BigInteger;)将base64字符串转换为二进制字符串。

byte[] decode = Base64.getDecoder().decode(base64_str);
String binaryStr = new BigInteger(1, decode).toString(2);

关于java - 在Java中将Base64转换为二进制字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26778958/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com