簡體   English   中英

如何添加兩個BitSet

[英]How to add two BitSet

我正在尋找一種添加兩個BitSet的方法。 我應該去了解二進制數的基礎知識,然后對BitSet進行XORAND操作。 就像這里基本說的 半加法器

這會有效嗎?

不,這沒有效率,因為在處理完N-1所有位之前,您不會知道N位的進位。 這是通過硬件中的進位超前加法器解決的問題。

沒有一種方法可以實現在最壞的情況下不逐位檢查所有位的方式來實現BitSet的添加。 替代策略在很大程度上取決於您的特定要求:如果您對位集進行大量更改,則可能需要根據 Sun的 Oracle實施來自己動手。 您可以 毫不客氣地復制 借用他們的代碼,並添加對以long[] bits存儲的BitSet的“內容”進行操作的add實現。 您需要非常小心地處理溢出(記住,Java中的所有數字都是帶符號的),但是否則應該很簡單。

最有效的方法是將兩個位集都轉換為數字,然后將它們相加

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM