我正在尝试对 Java 中的两个 64 位 Long 变量进行 XOR 操作。问题是当我在变量中添加超过 16 位时它会失败。
例如,这有效并返回 7:
Long h1 = Long.parseLong("1100001101001101");
Long h2 = Long.parseLong("1100001101000001");
System.out.println(Long.bitCount(h1 ^ h2));
如果我将 h1 和 h2 的值增加到:
Long h1 = Long.parseLong("11000110000110100110101101001101");
Long h2 = Long.parseLong("11000011100001101001101101000001");
我收到一个错误:
线程“主”java.lang.NumberFormatException 中的异常:对于输入字符串:“11000110000110100110101101001101”
在
java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
在 java.lang.Long.parseLong(Long.java:592)
在java.lang.Long.parseLong(Long.java:631)
如果我将它加倍(我想要计算的 64 位)也是一样的:
Long h1 = Long.parseLong("1100011100011000011010011010110100110110000110100110101101001101");
Long h2 = Long.parseLong("1100001110001100001101001101011010011011100001101001101101000001");
关于为什么在 16 位以上失败的任何帮助?