У меня есть строка из 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;
}
Если бы кто-нибудь мог помочь, это было бы здорово! Спасибо!
Нет, вы не можете использовать операторы сдвига битов в строках.
Если я правильно понял ваш код, вы просто меняете порядок битов в обратном порядке. Если вход является строкой, вам просто нужно перевернуть строку.
Для рецептов C и C ++, см. Как вы перевернуть строку на месте в C или C ++?
Других решений пока нет …