如何添加两个BitSet

时间:2012-03-30 15:14:36

标签: java bitset

我正在寻找一种方法来添加两个BitSet。我应该转到二进制数的基础知识并对BitSet执行XORAND操作。正如基本所说 - Half Adder

这会有效吗?

2 个答案:

答案 0 :(得分:4)

不,它效率不高,因为在通过N处理所有位之前,您不会知道位N-1的进位。这是通过硬件中的随身前瞻加法器解决的问题。

没有办法以不涉及在最坏情况下逐个检查所有位的方式实现BitSets的添加。另一种策略在很大程度上取决于您的具体要求:如果您突然改变您的位置,您可能希望根据 Sun的 Oracle的实现来推广自己的位置。您可以无耻地复制借用他们的代码,并添加add的实施,该实施对BitSet的“胆量”进行操作,存储为long[] bits。你需要非常小心处理溢出(记住,Java中的所有数字都是签名的),但是否则它应该是相当简单的。

答案 1 :(得分:1)

最有效的方法是将两个位集转换为数字并添加它们