Цитата(ViKo @ Aug 28 2014, 16:38)

Хочу, например, для числа 0x0100 найти позицию бита, который в 1, то есть, получить число 8.
В-принципе, этот бит будет один (младший бит в группе), но если их несколько, нужно определить позицию младшего.
Как это сделать макрофункцией?
Что-то в голову ничего, кроме вариаций на тему условного rvalue, не приходит.
Цитата(ViKo @ Aug 28 2014, 16:38)

P.S. Обратная функция легко делается сдвигом 1 << NUM.
Вот нифига. AFAIR, стандарт не определяет используемый тип сдвига, арифметический или круговой. Так что результат, скорее, неопределенный, если не маскировать специально.