Самый быстрый способ вычисления степени, которую использовало число «степень 2»?C++

Программы на C++. Форум разработчиков
Anonymous
Самый быстрый способ вычисления степени, которую использовало число «степень 2»?

Сообщение Anonymous »

Каким будет самый быстрый способ найти степень 2, которую использовало определенное число (то есть степень двойки)?

Я не очень разбираюсь в математике, поэтому не знаю, как лучше это описать. Но функция будет выглядеть примерно так: x = 2^y, где y — это выход, а x — это вход. Вот таблица истинности того, как бы это выглядело, если бы это помогло объяснить это.

0 = f(1)
1 = f(2)
2 = f(4)
3 = f(8)
...
8 = f(256)
9 = f(512)


Я создал функцию, которая делает это, но боюсь, что она не очень эффективна (или элегантна, если уж на то пошло). Есть ли более простой и эффективный способ сделать это? Я использую это, чтобы вычислить, какая область текстуры используется для буферизации процесса рисования, поэтому она вызывается хотя бы один раз для каждого нарисованного объекта. Вот функция, которую я сделал на данный момент:

uint32 getThePowerOfTwo(uint32 value){
for(uint32 n = 0; n < 32; ++n){
if(value

Подробнее здесь: https://stackoverflow.com/questions/214 ... umber-used

Вернуться в «C++»