Я хочу вычислить наименьшее целое число с набором ровно k
битов, которое больше другого целого числа x
.
Например, если x = 1001010
, то
для k=2
ответ должен быть 1010000
для k=4
ответ должен быть 1001011
а для k=5
ответом является 1001111
Я думаю, что нужно было бы установить как минимум столько битов, сколько крайних левых битов установлено в целом числе x
, а затем выберите между установкой бита на стороне MSB рядом со следующим крайним левым установленным битом в x
или установкой следующего крайнего левого установленного бита, а затем просмотрите установку битов, следующих за этим, повторив тот же процесс; все время считая биты, оставшиеся вне k.
Я не уверен, что это правильный подход.