В настоящее время я пишу счетчик дерева, где я столкнулся с следующей проблемой:
Я смотрю на маскированные биты, т.е. биты, где установленные биты являются подмножеством маски, т.е. 0000101
с маской 1010101
. То, что я хочу выполнить, - это увеличение битового набора, но только по отношению к замаскированным битам. В этом примере результат будет 0010000
. Чтобы сделать его более понятным, извлеките только маскированные биты, т.е. 0011
, увеличьте их до 0100
и снова распределите их в биты маски, указав 0010000
.
Кто-нибудь видит эффективный способ сделать это, не выполняя операцию вручную, используя комбинацию битканов и префиксных масок?