先用最低位移一个字符串?

时间:2012-12-01 08:11:01

标签: c++ string bit-shift

我有一个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;
}

如果有人可以提供帮助,那就太好了!谢谢!

1 个答案:

答案 0 :(得分:1)

不,你不能在字符串上使用位移运算符。

如果我正确理解你的代码,你只需要颠倒位的顺序。如果输入是字符串,则只需要反转字符串。

对于C和C ++配方,请参阅How do you reverse a string in place in C or C++?