Вот пример функции сдвига влево (с переносом крайнего бита):
Код
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);
}
}
}
И оптимизатор выкрутить на максимум

.