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

Extracting BinaryString as Integer, need suggestions

PS: I tried searching many existing questions here on Whosebug, however it only added chaos to my query!

10101
11100
11010
00101

将此视为示例输入,我需要将其作为 BinaryString 一一阅读!然后我需要将它们表示为 Integer.

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

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

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

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

让我知道这是否是解决此类问题的正确方法,谢谢!

尝试Integer.parseInt(String s, int radix)。如果二进制字符串无效,它将抛出异常,因此您可能需要验证输入。

String binary = "10001";
int asInt = Integer.parseInt(binary, 2); // 17

int 支持 ^(按位异或)运算符。您所要做的就是将二进制字符串转换为 int 变量并执行所需的操作。

如果我没有正确理解你的问题,你想知道如何将二进制字符串表示为整数。

好吧,您可以执行此任务以将二进制字符串转换为整数:

String input = "0b1001";
String temp = input.substring(2);
int foo = Integer.parseInt(temp, 2);

或者,切换回去:

String temp = Integer.toBinaryString(foo);

from the above input, I need to do 10101 ^ 11100.

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

  1. 首先将给定数字的十进制表示形式转换为二进制字符串(使用步骤 2);
  2. 然后使用步骤 1 转换为整数值;
  3. 对第二个数字重复步骤 1 和 2;和
  4. 最后,对它们进行异或运算。

但是,我看不出 performing/calculating 会有什么不同。它仍将存储为相同的整数。只是你会得到额外的满足感(对你而言)数字被读取为整数,然后转换为该数字的二进制表示。