ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
19 мая
287314 Топик полностью
Evgeny_CD, Архитектор (01.12.2011 10:37, просмотров: 128) ответил Evgeny_CD на Понятно, что если сделать И с маской, а потом "сдвинуть биты в кучу", то искомые 8 бит и получатся. Я просто решил порисечить вопрос в общем виде.
Отчасти понятно, как это сделать на практике. И с маской, сдивнуть биты в кучу, указатель на что-то по массиву размерностью 256. Реально, что стоит оптмизировать, это алгоритм сдвигания битов в кучу. Если результат после маски "прореженный", т.е. интересубющие биты стоят не группой, а с ненужными битами посредине, то это засада. Нужно последовательно проводить И с маской и сдвиг. Основная жопа в том, что результат следующей команды засивит от предыдущей, т.е. суперскалярность отдыхает. В реальности нужен хитрожопый алгоритм: И с маской - одна операция сдвига и наложения конечной маски - преобразование к U8 - поиск по промежуточной таблице 256. Тому, что нашлось по таблике, передается изначальное значение и результаты промежуточных операций. Так за нескоько итераций оно и "сойдется".