将BinaryString提取为整数,需要建议

时间:2016-02-24 18:20:05

标签: java string binary integer xor

  

PS:我尝试在Stackoverflow上搜索许多现有问题,不过它   只为我的查询添加了混乱!

10101
11100
11010
00101

将此视为一个示例输入,我需要逐个读取BinaryString!然后我需要将它们表示为Integer

显然int x = 20x初始化为十进制整数,

我从其他问题中读到int y = 0b101y初始化为二进制Integer

现在,问题是:如果我有一个binaryString,如何将其转换为int,就像前面的0b一样。我的目标是执行位级ORXOR操作。

即从上面的输入中,我需要做10101 ^ 11100

如果这是解决此类问题的正确方法,请告诉我们,谢谢!

2 个答案:

答案 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。

使用正确的十进制整数表示可以实现相同的效果。如果你想重新发明轮子,那么

  1. 首先将给定数字的十进制表示转换为二进制字符串(使用步骤2);
  2. 然后使用步骤1转换为整数值;
  3. 对第二个数字重复步骤1和2;和
  4. 最后,对它们执行XOR操作。
  5. 但是,我不知道它将如何以不同的方式执行/计算。它仍然存储为相同的整数。只是您将获得额外的满意度(就您而言)该数字被读取为整数,然后转换为该数字的二进制表示。