vicontfreetime
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Подскажите, пожалуйста, как наиболее просто (точнее, наиболее быстро) выполнить симметричный перенос единиц в полубайте и при этом поменять местами полубайты в байте, а байты расположить в последовательности наоборот? То есть, дана последовательность байтов, например, такая 01001110 11110001 11100100 00110010 необходимо проделать итерации: 1. берём последний полубайт 0010 2. симметрично отражаем его, получаем 0100 3. ставим его в первый байт старшим полубайтом 4. берём второй с конца полубайт 0011 5. симметрично отражаем его, получаем 1100 6. ставим его младшим полубайтом, получаем первый байт 01001100 7. берём третий с конца полубайт и т.д. В идеале, конечно, придумать бы SSE2-вариант. У меня что-то уже крыша едет. |