Вычислить наименьшее целое число с набором k битов, которое больше, чем другое целое число x?

Я хочу вычислить наименьшее целое число с набором ровно kбитов, которое больше другого целого числа x.

Например, если x = 1001010, то для k=2ответ должен быть 1010000 для k=4ответ должен быть 1001011 а для k=5ответом является 1001111

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

Я не уверен, что это правильный подход.

5
задан adi 16 June 2012 в 14:47
поделиться