-2

バイナリ文字列を3ビット循環する必要があります。これをJavaで実装するにはどうすればよいですか?

「<<」演算子は正確にはどういう意味ですか?前もって感謝します。

4

2 に答える 2

0

要素ごとに、次の2つのことから新しい値を作成する必要があります。

1)値<< 3

2)その下の値(または最小値の場合は一番上の値)>> sizeof(value)-3

バイナリ文字列の大きさがわからない場合は、2)(「残り物」)をすべて別のコレクションに保存し、上向きのビットシフトをすべて行ったら、それらをすべて追加することをお勧めします。そうしないと、ロジックが複雑になりすぎます。

于 2013-02-25T05:41:20.407 に答える
0

それは簡単です。文字列では回転を実行できないことに注意してください。むしろ、あなたが数値でそれをすることができること。試す:

    byte i = 15;
    byte j = (byte)(i << 3) ;
    byte k = (byte)(i >> 3);

    System.out.println("Here is result i=" + i + "and j = " + j + "and k = " + k);

これにより、i = 15、j = 120、およびk=1になります。それは非循環シフトであることを意味します。

循環シフトの場合、次のことを試すことができます。

    byte i = 15;
    byte j = (byte) ((i << 3) + (i >> 5));
    byte k = (byte) ((i >> 3) + (i << 5));

5は8-3のようなもので、8はデータ型が持つことができるビット数です。

于 2013-02-25T05:56:22.030 に答える