如果字符串由1和0组成,我正在寻找一种从字符串中获取字节的快速方法。例如:字符串a =“ 101010”。如何获取字节b =“ 101010”?
我看了其他一些文章,但是它们通常包括如何获取String的字节值。我对基本切换格式感兴趣。
编辑:
为了更清楚一点,我正在寻找这个
String a = "101010"
byte b = //What to do?
System.out.print(b)
-> 0b101010
答案 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