Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ищу эффективный алгоритм сдвига на 1 бит N байтного массива на С++
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
Yaumen
Есть N мерный BYTE массив, который необходимо побитово сдвинуть на 1 бит. Как можно эффективнее это описать на С++?

На ассемблере есть специальные команды сдвига через перенос, а вот как это же реализовать на С++ ?
baralgin
Вот пример функции сдвига влево (с переносом крайнего бита):
Код
void ShiftLeft(unsigned char *mas, size_t n)
{
    if( n > 0 )
    {
        mas[n-1] = (mas[n-1] << 1) | (mas[0] >> 7);
        for(size_t i = 0; i < n - 1; i++ )
        {
            mas[i] = (mas[i] << 1) | (mas[i+1] >> 7);
        }
    }
}


И оптимизатор выкрутить на максимум smile.gif .
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.