論理右シフトと左シフトを実行しようとしています(>>>と< <を使用しています)。残念ながら、シフト量が32より大きい場合は、モジュロでビットを回転させ、ビットを適切な位置にシフトすることがすべてわかります。それは本当にそれらをシフトさせるだけではありません。どうすればそれを避けることができますか? centOSでJava 7を使用します。 更新:Javaでのシフト結果が悪い
public static void main(String[] args) {
int a = 0xc0000003;
int b = a >>> 32;
int c = 0xc0000003;
int d = c << 36;
System.out.println("b=" + b + ", d=" + d);
}
出力はb=-1073741821, d=48
です: 私はバグがあると思い例で遊んでました。どうして?どのように私はcのように右と左のロジックをシフトするのですか?
「[ビットシフト演算子](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html)」と呼ばれています。彼らは* shift *、回転*しません。あなたはどこで回転するのか考えましたか? – Andreas
問題を示す[mcve]を入力してください。 –
20年以上も前の言語に比べて、あなたは何をしているのか分かりません。 – eldo