-1

私がしようとしていること:

  1. すべて値が0または1の8つの整数のグループを1バイトに変換します
  2. そのバイトのビット順序を逆にします
  3. そのバイトの値を(どの形式で?)出力します(ここに表示されるまで推測できます)

また、この問題にSTLを使用することは許可されていません。

4

2 に答える 2

1

したがって、1バイトのビットを逆にします。つまり、ビットは次のように移動する必要があります。

from: 7 6 5 4 3 2 1 0
to:   0 1 2 3 4 5 6 7

このコードは、エレガントにそれを行います-検索すると、はるかに優れたアルゴリズムを見つけることができます。それがどのように機能するかわかりますか?

uint8_t reverse_bits(uint8_t byte)
{
    return ((byte & 0x01) << 7)
          |((byte & 0x02) << 5)
          |((byte & 0x04) << 3)
          |((byte & 0x08) << 1)
          |((byte & 0x10) >> 1)
          |((byte & 0x20) >> 3)
          |((byte & 0x40) >> 5)
          |((byte & 0x80) >> 7);
}
于 2013-03-10T00:03:50.253 に答える
-1

簡単な方法は、個々のビットを読み取る方法でわかるように、残りのビットをマスクすることです。

于 2013-03-09T23:36:27.117 に答える