PS:我尝试在Stackoverflow上搜索许多现有问题,不过它 只为我的查询添加了混乱!
10101
11100
11010
00101
将此视为一个示例输入,我需要逐个读取BinaryString
!然后我需要将它们表示为Integer
。
显然int x = 20
将x
初始化为十进制整数,
我从其他问题中读到int y = 0b101
将y
初始化为二进制Integer
。
现在,问题是:如果我有一个binaryString,如何将其转换为int
,就像前面的0b
一样。我的目标是执行位级OR
和XOR
操作。
即从上面的输入中,我需要做10101 ^ 11100
如果这是解决此类问题的正确方法,请告诉我们,谢谢!
答案 0 :(得分:1)
试试Integer.parseInt(String s, int radix)
。如果二进制字符串无效,它将抛出异常,因此您可能希望验证输入。
String binary = "10001";
int asInt = Integer.parseInt(binary, 2); // 17
int
支持^
(按位异或)运算符。您所要做的就是将二进制字符串转换为int
变量并执行所需的操作。
答案 1 :(得分:1)
如果我已正确理解您的问题,您想知道如何将二进制字符串表示为整数。
好吧,您可以执行此任务以将二进制字符串转换为整数:
String input = "0b1001";
String temp = input.substring(2);
int foo = Integer.parseInt(temp, 2);
或者,切换回来:
String temp = Integer.toBinaryString(foo);
从上面的输入来看,我需要做10101 ^ 11100。
使用正确的十进制整数表示可以实现相同的效果。如果你想重新发明轮子,那么
但是,我不知道它将如何以不同的方式执行/计算。它仍然存储为相同的整数。只是您将获得额外的满意度(就您而言)该数字被读取为整数,然后转换为该数字的二进制表示。