英文:
Convert a bit to Base64 character
问题
我需要将一个二进制字符串("110100",十进制为52)转换为对应的Base64字符,我知道对应的字符是"0"。在Java中有没有这样的方法?我阅读了多个Base64指南,但是我找不到答案。
为了澄清起见,转换表在这里:https://www.lifewire.com/base64-encoding-overview-1166412(Base64编码表部分)。我想要在已知52的情况下,将其转换为"0"字符。
非常感谢。
英文:
I need to convert a binary String ("110100", 52 in decimal) to its corresponding Base64 character, that I know is "0". Is any way in Java to do that? I was reading multiple base 64 guides but I cant reach the answer.
For clarification, the conversion table is here: https://www.lifewire.com/base64-encoding-overview-1166412 (Base64 Encoding Table section) I want having the 52, convert it to "0" char.
Thanks a lot.
答案1
得分: 1
由于一个字节长度为8位,而Base64通过仅使用6位来构造其值,我能想到的最简单的方法是在所需字符开头附加两个字符,然后仅取结果的最后一个字符:
String encode = String.format("00%s", (char) Integer.parseInt("110100", 2));
String encoded = new String(Base64.getEncoder().encode(encode.getBytes()));
System.out.println(encoded.charAt(encoded.length() - 1));
// 输出:0
英文:
Since a byte is 8 bits long and Base64 makes up its values by grabbing only 6 bits the simplest way I can think of is appending two characters at the beginning of your desired character and taking only the last character of the result:
String encode = String.format("00%s", (char) Integer.parseInt("110100", 2));
String encoded = new String(Base64.getEncoder().encode(encode.getBytes()));
System.out.println(encoded.charAt(encoded.length() - 1));
// Prints: 0
答案2
得分: 0
你首先需要将二进制字符串转换为字节数组。有很多关于如何完成这个操作的帖子,但在伪代码中,它看起来像是这样的。
读取最多4个字符;
Byte.parseByte(chars, 2);
添加到字节数组;
然后你可以使用 Base64.Encoder 来对字节进行编码。
英文:
You first need to convert your binary string into a byte array. There are a number of posts on how to accomplish this but in pseudo code it would look like the following.
Read up to 4 characters;
Byte.parseByte(chars, 2);
Append to byte array;
Then you can use Base64.Encoder to encode the bytes.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论