Java BigInteger.Java不适用于大数字?

Java BigInteger.Java不适用于大数字?,java,biginteger,Java,Biginteger,我创建了两个大整数,然后对它们求和。但是and操作不起作用,而是返回0。为什么? BigInteger aa = new BigInteger("213092840173096182527577008347205670468257779233261101799142588416"); BigInteger bb = new BigInteger("226156424291633194186662097633113218007386784142018559245972777080014766080

我创建了两个大整数,然后对它们求和。但是and操作不起作用,而是返回0。为什么?

BigInteger aa = new BigInteger("213092840173096182527577008347205670468257779233261101799142588416");
BigInteger bb = new BigInteger("226156424291633194186662097633113218007386784142018559245972777080014766080");
System.out.println(aa.and(bb));
输出:0

我对这两个数字做了一个大整数“或”,而“或”运算效果很好。还有人看到同样的问题吗

请注意,我使用的是JDK1.8。

这是因为它们的and为零!它们没有共同点

使用python验证:

>>> x = 226156424291633194186662097633113218007386784142018559245972777080014766
080
>>> y = 213092840173096182527577008347205670468257779233261101799142588416
>>> x & y
0L
>>> bin(x)
'0b10000000000000000000000000000000000000000000000000000000000000000000000000000
00000001100000000000000000000000000000000000000100000000000000000000010010100000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000'
>>> bin(y)
'0b10000001100000000000000000000000000000000000000000000000000000110000000000000
00111000000001000000000000000000000000000000000000000000000000000000000000000000
1000000000000000000000000000000000000000000000000000000000000'
>>>
顺便说一句,一个一般性的评论:在声称在经过良好测试的大量使用的库中存在错误之前,谨慎的做法是查看您是否错误地使用了它/结果与预期一致。

这是因为它们的and为零!它们没有共同点

使用python验证:

>>> x = 226156424291633194186662097633113218007386784142018559245972777080014766
080
>>> y = 213092840173096182527577008347205670468257779233261101799142588416
>>> x & y
0L
>>> bin(x)
'0b10000000000000000000000000000000000000000000000000000000000000000000000000000
00000001100000000000000000000000000000000000000100000000000000000000010010100000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000'
>>> bin(y)
'0b10000001100000000000000000000000000000000000000000000000000000110000000000000
00111000000001000000000000000000000000000000000000000000000000000000000000000000
1000000000000000000000000000000000000000000000000000000000000'
>>>

顺便说一句,一般性的评论:在声称在经过良好测试的大量使用的库中存在错误之前,谨慎的做法是查看您是否错误地使用了它/结果与预期一致。

已解决。这两个数字是十进制的,然后是实数和零。

解析。这两个数字是十进制的,然后是真的和零。

虽然这是非常随机的,但这些数字是否真的和零有可能?不太可能但可能是的。。我的想法完全正确。我想知道预期的结果是什么。我正在控制台上打印dec中的两个数字,结果弄糊涂了。后来我设法用十六进制打印出来,发现它们确实是零。我的错!虽然这是非常随机的,但这些数字是否有可能真的等于0?不太可能但可能是的。。我的想法完全正确。我想知道预期的结果是什么。我正在控制台上打印dec中的两个数字,结果弄糊涂了。后来我设法用十六进制打印出来,发现它们确实是零。我的错!为什么你觉得有必要添加自己的答案,当1你可以编辑你的问题,2已经有了答案!因为我们两人同时写了答案。没必要这么挑剔。比特很便宜,我不是挑剔。这个网站有一些关于发问者回答他们自己问题的规则,而编辑问题就足够了。此外,9分钟的差异不是同时发生的。当1你可以编辑你的问题,2已经有答案时,为什么你觉得有必要添加你自己的答案!因为我们两人同时写了答案。没必要这么挑剔。比特很便宜,我不是挑剔。这个网站有一些关于发问者回答他们自己问题的规则,而编辑问题就足够了。此外,9分钟的差异不是同时发生的。