2011-12-19 10 views
6

私はjavaを初めて利用していて、>>>>>という2つの右シフト演算子がありますが、左シフト演算子は<<です。それはなぜそうですか?なぜ2つの右シフト演算子と1つの左シフト演算子だけがJavaにありますか?

+5

右シフト演算子について知っていることに基づいて、考えがありますか? –

+1

これは[チュートリアル](http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html)でも説明しています。 – PeterMmm

+0

@PeterMmm申し訳ありません、ページが見つかりません – sum2000

答えて

9

論理及び算術左シフト操作(from wikipedia)同一であるので。

RightLeft

Right

Left

左の符号ビット(一番左のビット)に何が起こるのかを確認してください。がシフトします。

3

右シフト演算子は、(>>)と符号拡張を持たない演算子()です。左シフト操作には符号拡張コンポーネントはありません。

例えば、以下の式は、両方の真である:

(0x80000000 >> 1) == 0xC0000000 
(0x80000000 >>> 1) == 0x40000000 
+0

なぜ?私はここで新しいです、もし私が愚かな質問をしているなら、私を許してください – sum2000

+1

@ sum2000符号ビットはどこですか? –

+0

@DaveNewtonあなたはここに答えるか質問しますか? – sum2000

関連する問題