从给定的1和0的字符串中获取字节

时间:2019-03-21 19:58:47

标签: java

如果字符串由1和0组成,我正在寻找一种从字符串中获取字节的快速方法。例如:字符串a =“ 101010”。如何获取字节b =“ 101010”?

我看了其他一些文章,但是它们通常包括如何获取String的字节值。我对基本切换格式感兴趣。

编辑:
为了更清楚一点,我正在寻找这个

String a = "101010"
byte b = //What to do?
System.out.print(b)

-> 0b101010

2 个答案:

答案 0 :(得分:2)

Byte类和其他Integer等整数类型可以解析2到36(使用数字0-9和字母A-Z编码)范围内的数字。

String a = "101010";
byte b = Byte.parseByte(a, 2);
String c = Integer.toBinaryString(b & 0xFF);
String d = "0b" + c;

请记住,Java byte是带符号的,因此我们需要屏蔽使用以将值提升为带符号的int的方式引入的所有高阶位。

答案 1 :(得分:0)

byte是Java中的一个带符号原始值,当您打印它时,将得到该值的一个十进制表示形式(默认)。您需要执行两个步骤;首先,将String解析为byte;其次,以所需的格式显示byte(作为带有前导String的二进制0b)。这可以很简单地完成,就像

String a = "101010";
byte b = Byte.parseByte(a, 2);
System.out.printf("0b%s%n", Integer.toBinaryString(b));

哪些输出(按要求)

0b101010