0

C++ で 3 ビットの左端の回転を行う必要があります。

これまでのところ、私は持っています:

A[i] = (A[i] << 3)|(A[i] >> 5);

A は unsigned char 配列です。

これは正しいです?そうでない場合、どうすれば修正できますか?また、これが正しいかどうかをテストして確認する最良の方法は何ですか?

ありがとう

4

1 に答える 1

1

私にはうまく見えます。

本当にテストしたい場合は、手作業で一連の入力と出力を作成し、プログラムがそれらを生成することを確認してください。

または、確実に結果が得られる別の方法を考案し (例: unsigned char をバイナリ文字列に変換し、文字列を回転させ、unsigned char に戻す)、2 つを 256 の可能な入力すべてと比較します。

于 2013-07-21T22:51:04.943 に答える