1

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

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

4

1 回答 1

1

不,您不能对字符串使用位移运算符。

如果我正确理解了您的代码,那么您只是颠倒了位的顺序。如果输入是字符串,则只需反转字符串即可。

对于 C 和 C++ 配方,请参阅如何在 C 或 C++ 中反转字符串?

于 2012-12-01T08:18:04.493 回答