У меня есть поток 16-битных значений, и мне нужно отрегулировать 4 младших значащих бита каждой выборки. Новые значения различны для каждого короткого замыкания, но повторяют каждое короткое замыкание X - по сути, помечая каждое короткое замыкание идентификатором.
Есть ли какие-нибудь хитрые трюки, чтобы сделать это быстрее, чем просто цикл for?
Подробнее
Я конвертирую файл из одного формата в другой. В настоящее время реализовано с FILE *, но я мог бы использовать специальные API для Windows, если это будет полезно.
[while data remaining]
{
read X shorts from input
tag 4 LSB's
write modified data to output
}
В дополнение к массовым операциям, я думаю, я искал мнения о том, как лучше растоптать эти последние 4 бита.
- Сдвиг вправо 4, сдвиг влево 4, | в новых значениях
- & в моих нулевых битах, тогда | в 1 бит
- модуль 16, добавить новое значение
Сейчас мы поддерживаем только win7 (32 или 64), поэтому аппаратное обеспечение будет тем, что люди выберут для этого.