Округление до следующей степени 2 - PullRequest
162 голосов
/ 21 января 2009

Я хочу написать функцию, которая возвращает ближайшую следующую степень 2 числа. Например, если мой ввод 789, вывод должен быть 1024. Есть ли способ достичь этого без использования циклов, а только с использованием некоторых побитовых операторов?

Ответы [ 21 ]

0 голосов
/ 05 октября 2013

Многие процессорные архитектуры поддерживают log base 2 или очень похожую операцию - count leading zeros. Многие компиляторы имеют встроенные функции для этого. Смотри https://en.wikipedia.org/wiki/Find_first_set

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