Java 正在将BinaryString提取为整数,需要建议吗

Java 正在将BinaryString提取为整数,需要建议吗,java,string,binary,integer,xor,Java,String,Binary,Integer,Xor,PS:我尝试在Stackoverflow上搜索许多现有的问题,但是 只会给我的查询增加混乱 将此作为一个示例输入,我需要将其逐个读取为BinaryString!然后我需要将它们表示为一个整数 显然,int x=20将x初始化为十进制整数 我从其他问题中了解到,int y=0b101将y初始化为二进制整数 现在,问题是:如果我有一个二进制字符串,我如何将它转换成一个int,就像前面的0b一样。我的目标是执行位级或和异或操作 根据以上输入,我需要执行10101^11100 让我知道这是否是解决此类问

PS:我尝试在Stackoverflow上搜索许多现有的问题,但是 只会给我的查询增加混乱

将此作为一个示例输入,我需要将其逐个读取为
BinaryString
!然后我需要将它们表示为一个
整数

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

我从其他问题中了解到,
int y=0b101
y
初始化为二进制
整数

现在,问题是:如果我有一个二进制字符串,我如何将它转换成一个
int
,就像前面的
0b
一样。我的目标是执行位级
异或
操作

根据以上输入,我需要执行
10101^11100

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

试试
Integer.parseInt(字符串s,整数基数)
。如果二进制字符串无效,它将引发异常,因此您可能希望验证输入

String binary = "10001";
int asInt = Integer.parseInt(binary, 2); // 17
int
支持
^
(按位异或)运算符。您只需将二进制字符串转换为
int
变量并执行所需的操作。

尝试
Integer.parseInt(字符串s,int基数)
。如果二进制字符串无效,它将引发异常,因此您可能希望验证输入

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);
根据上面的输入,我需要执行10101^11100

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

  • 首先将给定数字的十进制表示转换为二进制字符串(使用步骤2)
  • 然后使用步骤1将其转换为整数值
  • 对第二个数字重复步骤1和2;及
  • 最后,对它们执行XOR操作
    但是,我看不出它的表现/计算方式会有什么不同。它仍然会被存储为相同的整数。这只是因为你将得到额外的满足感(对你来说),数字被读取为整数,然后转换为该数字的二进制表示。

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

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

    String input = "0b1001";
    String temp = input.substring(2);
    int foo = Integer.parseInt(temp, 2);
    
    或者,要切换回:

    String temp = Integer.toBinaryString(foo);
    
    根据上面的输入,我需要执行10101^11100

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

  • 首先将给定数字的十进制表示转换为二进制字符串(使用步骤2)
  • 然后使用步骤1将其转换为整数值
  • 对第二个数字重复步骤1和2;及
  • 最后,对它们执行XOR操作
    但是,我看不出它的表现/计算方式会有什么不同。它仍然会被存储为相同的整数。这只是因为你会得到额外的满足(对你来说),数字被读取为整数,然后转换为该数字的二进制表示。

    提示:没有“十进制整数”或“二进制整数”这样的东西。语句
    intx=20
    intx=0x14
    intx=0b10100是完全等效的。整数就是整数。如果我有20个蛋糕,那么无论我用二进制、十六进制、十进制还是其他方式计算,蛋糕的数量都是一样的…@JonSkeet谢谢,我理解,所以我认为**对两个十进制数执行异或运算与对它们的二进制数执行异或运算是一样的**。“我说得对吗?”沙欣-是的,检查我的答案。特别是最后一段。嗯,有点-但更简单的是,没有“十进制数”(对于整数,无论如何……对于浮点,它变得更复杂)。数字有十进制表示(作为字符串),数字有二进制表示(作为字符串)……我在哪里可以找到信息来掌握这些概念,以各种格式处理字符串和整数,特别是在使用java编码时?再次感谢!提示:没有“十进制整数”或“二进制整数”之类的东西。语句
    intx=20
    intx=0x14
    intx=0b10100是完全等效的。整数就是整数。如果我有20个蛋糕,那么无论我用二进制、十六进制、十进制还是其他方式计算,蛋糕的数量都是一样的…@JonSkeet谢谢,我理解,所以我认为**对两个十进制数执行异或运算与对它们的二进制数执行异或运算是一样的**。“我说得对吗?”沙欣-是的,检查我的答案。特别是最后一段。嗯,有点-但更简单的是,没有“十进制数”(对于整数,无论如何……对于浮点,它变得更复杂)。数字有十进制表示(作为字符串),数字有二进制表示(作为字符串)……我在哪里可以找到信息来掌握这些概念,以各种格式处理字符串和整数,特别是在使用java编码时?再次感谢!这不是我要找的!我需要以整数为基数2的字符串二进制值,即简单地说,我需要该字符串作为一个数字,比如说
    intasint=0b10001
    @shaheen:你又误解了
    Int
    是什么。这个答案向您展示了如何将二进制字符串解析为
    int
    @shaheen,您基本上需要使用自定义