Ich bin gerade dabei, einen Baum-Enumerator zu schreiben, bei dem ich auf folgendes Problem gestoßen bin:
Ich betrachte maskierte Bitsets, dh Bitsets, bei denen die gesetzten Bits eine Teilmenge einer Maske sind, dh 0000101
mit Maske 1010101
. Was ich erreichen möchte, ist das Inkrementieren des Bitsets, jedoch nur in Bezug auf die maskierten Bits. In diesem Beispiel wäre das Ergebnis 0010000
. Um es etwas klarer zu machen, extrahieren Sie nur die maskierten Bits, dh 0011
erhöhen Sie sie auf 0100
und verteilen Sie sie erneut auf die Maskenbits 0010000
.
Sieht jemand einen effizienten Weg, dies zu tun, ohne die Operation von Hand mit einer Kombination aus Bitscans und Präfixmasken zu implementieren?