1

ビットをシフトしたい 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;
}

誰かが助けることができれば、それは素晴らしいことです! ありがとう!

4

1 に答える 1

1

いいえ、文字列にビット シフト演算子を使用することはできません。

私があなたのコードを正しく理解していれば、単にビットの順序を逆にしているだけです。入力が文字列の場合は、文字列を逆にするだけです。

C および C++ のレシピについては、C または C++ で文字列を反転させる方法を参照してください。

于 2012-12-01T08:18:04.493 に答える