Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
xor 2二进制字符串,并使用java以二进制形式给出结果_Java - Fatal编程技术网

xor 2二进制字符串,并使用java以二进制形式给出结果

xor 2二进制字符串,并使用java以二进制形式给出结果,java,Java,我有两个非常大的二进制字符串,如下所示。 如何对这些大字符串执行按位异或,并以二进制显示结果 字符串1。 10001101001100000000101110110010111011111111110111010111111110110111101100100011001000010110101111111101111101000100111111110011100100100111111001101000000000110000001100010110100001101100110011110

我有两个非常大的二进制字符串,如下所示。 如何对这些大字符串执行按位异或,并以二进制显示结果

字符串1。
10001101001100000000101110110010111011111111110111010111111110110111101100100011001000010110101111111101111101000100111111110011100100100111111001101000000000110000001100010110100001101100110011110000001100100101110111111001010100100101100010100100111111100100100100100100100100100100111111100100100100100111001100110011001100110011001100100000011000000111001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011001100110011000011111111111011110010110101101010001101010010100000110100111011001111101111111010101000011101111101101101110011100100001100001101111110010100111000111111000100000010100010011001011101101101010010011100000101011000010111100001011000101110001001011010001011111100100011001110011110011101010011111000111001011011101000001010100011111011011010101010100011111101000100100100001000000011001100100000010101100101100100100110011000101101100000010101001110111010110110111010110111101101001010101100100100000011100011001010110011110011011010111000001010101101111


字符串2<代码>1100010101110001001111011101010101011000101011011010111110111100010101010111110010001011100110001000101110111110000010111100000101111000001011111000111100011110001111000101100011110001011000100010011100010001110011111111001111111111110100100100100101100001001110000100111000011100001111110011001111111100111111111110011111111001111100011110001100111000110011011011100011001110001100111111111111111111000110011100011001110001100111000110011011011111111111111111111100011001110001100111000110011011011111111111111111100011011101111111111111010110110100000000111011010100010000110100001101000001000101010101000110100010101110101110011000011000100010101100010011011111011010111010000101011101010101001111001100110110001000100000111010011110111100001101110101001000001110000001101110010100010101110100100010110010010101010011101011101001010000001001011011100011001100010101111110111001011001010000011000110011100111110111000110101111000100000101010101011010111101101100110110101110111100101000111110100001110111010000110000000111111011110010101010001110111000001110110010001000001000000010010101011000001001100001111000000101011111011001010010100001100111011001000111000000111101111000001111001111010101001001000100000000001010000111001101100010101100101100001000000101100011110111100111110

对我来说,这听起来像是家庭作业或作业,所以我将提供指导而不是代码:

  • 创建一个空的
  • 使用索引为
    i
  • 用于在位置
    i
  • 如果两个字符在该位置相等,则将
    0
    添加到字符串生成器中,否则将
    1
    添加到字符串生成器中
  • 迭代完成后

    • 对我来说,这听起来像是家庭作业或作业,因此我将提供指导而不是代码:

      • 创建一个空的
      • 使用索引为
        i
      • 用于在位置
        i
      • 如果两个字符在该位置相等,则将
        0
        添加到字符串生成器中,否则将
        1
        添加到字符串生成器中
      • 迭代完成后
      使用BigInteger:

      使用BigInteger:


      在我看来,最合适的解决方案是使用java,因为它本质上就是您所拥有的。位集具有所有标准的位操作,如普通int,但它们可以任意大。将字符串转换为位集可能很烦人(可能只是循环遍历每个字符),但在这之后,剩下的就很容易了,只需使用实例方法
      xor()
      ,然后使用
      toString()
      打印它

      在我看来,最合适的解决方案是使用java,因为这基本上就是您所拥有的。位集具有所有标准的位操作,如普通int,但它们可以任意大。将字符串转换为位集可能会很烦人(可能只是循环遍历每个字符),但在这之后,只需使用实例方法
      xor()
      ,然后使用
      toString()
      打印它

      长度应该相同,但显然不同。基本上,你必须一个数字一个数字地做。按长度计算的结果应该是一样的,但显然不一样。基本上,你必须一个数字一个数字地做。根据家庭作业的完美提示进行投票。我喜欢那些对家庭作业给出这种答案而不是提供直接代码的人+1@aaronman无论如何,输出都需要一个字符串生成器,这样就可以跳过中间人。不过,您不必这样做。@aaronman OP使用字符串、转换为位集并使用[xor](然后再转换回来也是一个可行的解决方案——尽管我不知道有什么简单的方法可以将一个位字符串转换成一个位集。@BenjaminGruenbaum如果位集的实现是合理的,那么xoring不应该更快,因为您可以一次执行多个条目,更不用说没有分支,尽管我同意您是被迫从一个字符串开始的把它转换成一个新的版本可能会很痛苦bitset@aaronman为了将字符串转换为位集,您必须执行我建议的简单算法所做的操作(迭代两个字符串).对家庭作业的完美提示。我喜欢对家庭作业给出这种答案而不是提供直接代码的人+1@aaronman无论如何,输出都需要一个字符串生成器,因此您可以跳过中间人。但是,您不必这样做。@aaronman OP正在使用字符串、转换为位集并使用[xor](然后再转换回来也是一个可行的解决方案——尽管我不知道有什么简单的方法可以将一个位字符串转换成一个位集。@BenjaminGruenbaum如果位集的实现是合理的,那么xoring不应该更快,因为您可以一次执行多个条目,更不用说没有分支,尽管我同意您是被迫从一个字符串开始的把它转换成一个新的版本可能会很痛苦bitset@aaronman要将字符串转换为位集,必须执行以下操作: