我有一个0和1的字符串,我想改变它的位。例如,如果我的字符串包含以下内容:
00000011
我想把它变成
11000000
我有关于如何从unsigned char中执行此操作的想法,但我不完全确定您是否可以对字符串使用位移操作。可能有人知道怎么用字符串这样做?这是无符号字符的代码。
unsigned char shift(unsigned char *bits)
{
unsigned char sum = 0;
for(int i = 7; i >= 0; i--)
{
sum += bits[i];
sum <<= 1;
}
return sum;
}
如果有人可以提供帮助,那就太好了!谢谢!
答案 0 :(得分:1)
不,你不能在字符串上使用位移运算符。
如果我正确理解你的代码,你只需要颠倒位的顺序。如果输入是字符串,则只需要反转字符串。
对于C和C ++配方,请参阅How do you reverse a string in place in C or C++?