Подскажите алгоритм оптимального чтения LSB num бит.
Есть число 11110000 = F0. Необходимо прочитать справа налево num bit, начиная с first.
Например: first = 2, num = 5, читаем 00111 = 7.
Первое что приходит:
int v = 0;
for (int i = first; i < num + first; i++)
v = (v << 1) + (value & (1 << i)) ? 1 : 0;
Меня смущает цикл for и оператор if.
Спасибо.