На даний момент я складаю процес написання перелічувача дерев, де я зіткнувся з такою проблемою:
Я розглядаю замасковані бітсети, тобто бітсети, де встановлені біти є підмножиною маски, тобто 0000101
з маскою 1010101
. Я хочу досягти збільшення бітсету, але лише стосовно маскуваних бітів. У цьому прикладі результат буде 0010000
. Щоб зробити це чіткіше, витягніть лише замасковані біти, тобто 0011
збільште їх до 0100
і розподіліть їх знову по бітах маски, даючи 0010000
.
Хтось бачить ефективний спосіб зробити це, за винятком здійснення операції вручну, використовуючи комбінацію бітсканів та префіксних масок?