Как получить наименьшее n, что 2 ^ n> = x для заданного целого числа x в O (1)? - PullRequest
2 голосов
/ 11 мая 2011

Как для данного целого числа без знака x найти наименьшее n, что 2 ^ n & ge; x в O (1)? другими словами, я хочу найти индекс старшего установленного бита в двоичном формате x (плюс 1, если x не является степенью 2) в O (1) (не зависит от размера целого числа и размера байта) .

Ответы [ 11 ]

0 голосов
/ 11 мая 2011

Вы можете использовать предварительно рассчитанные таблицы.

Если ваш номер находится в интервале [0,255], будет работать простой поиск по таблице.

Если оно больше, вы можете разделить его на байты и проверить их от высокого к низкому.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...