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