Re: Алгоритм чтения LSB-bit
От: wl. Россия  
Дата: 17.12.24 19:35
Оценка:
Здравствуйте, Vladimir, Вы писали:

V>Подскажите алгоритм оптимального чтения LSB num бит.

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

V>Меня смущает цикл for и оператор if.
V>Спасибо.

а чем такой вариант не устраивает?
в каком-то эмуляторе, скорее всего PPSSPP, который эмулирует MIPS, видел шаблоны, которые автоматом конвертируют LSB в MSB, а там уж обычные сдвиги и маски можно применить.
Не предлагаю копаться в таком гигантском коде, чтобы найти эти шаблоны, просто это направление, в котором можно поискать. Не факт даже, что шаблонами быстрее будет
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.