Обычно я могу найти большинство C-кода, но это над моей головой.
#define kroundup32(x) (--(x), (x)|=(x)>>1, (x)|=(x)>>2, (x)|=(x)>>4, (x)|=(x)>>8, (x)|=(x)>>16, ++(x))
пример использования будет выглядеть примерно так:
int x = 57;
kroundup32(x);
//x is now 64
Несколько других примеров:
1 к 1
2 до 2
7 до 8
31 до 32
60 до 64
От 3000 до 4096
Я знаю, что он округляет целое число до ближайшей силы 2, но это касается моих знаний.
Любые объяснения будут с благодарностью.
Спасибо