我試圖執行邏輯右移和左移(使用>>>和< <)。不幸的是我看到,當移位量大於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)」。他們*轉移*,他們不*旋轉*。你從哪裏得到旋轉的想法? – Andreas
請提供一個顯示您的問題的[mcve]。 –
它更可能你不知道你在做什麼比20多歲的語言有一個這樣的瑣碎的錯誤。 – eldo