Помощь
-
Поиск
-
Пользователи
-
Календарь
Полная версия этой страницы:
Ищу эффективный алгоритм сдвига на 1 бит N байтного массива на С++
Форум разработчиков электроники ELECTRONIX.ru
>
Сайт и форум
>
В помощь начинающему
>
Программирование
Yaumen
Mar 10 2010, 14:41
Есть N мерный BYTE массив, который необходимо побитово сдвинуть на 1 бит. Как можно эффективнее это описать на С++?
На ассемблере есть специальные команды сдвига через перенос, а вот как это же реализовать на С++ ?
baralgin
Mar 10 2010, 15:57
Вот пример функции сдвига влево (с переносом крайнего бита):
Код
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);
}
}
}
И оптимизатор выкрутить на максимум
.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке
.
Invision Power Board © 2001-2025
Invision Power Services, Inc.