Сначала сдвинуть строку на младший бит?

У меня есть строка из 0 и 1, которую я хотел бы сдвинуть. Например, если моя строка имела следующее:

00000011

Я хотел бы превратить это в

11000000

У меня есть идея, как сделать это из неподписанного символа, но я не совсем уверен, что вы можете использовать операцию сдвига битов в строках. Может кто-нибудь знает, как это сделать со строками? Вот код для неподписанных символов.

unsigned char shift(unsigned char *bits)
{
unsigned char sum = 0;
for(int i = 7; i >= 0; i--)
{
sum += bits[i];
sum <<= 1;
}
return sum;
}

Если бы кто-нибудь мог помочь, это было бы здорово! Спасибо!

1

Решение

Нет, вы не можете использовать операторы сдвига битов в строках.

Если я правильно понял ваш код, вы просто меняете порядок битов в обратном порядке. Если вход является строкой, вам просто нужно перевернуть строку.

Для рецептов C и C ++, см. Как вы перевернуть строку на месте в C или C ++?

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]