最近、Javaでシフト演算子を使用しましたが、演算子がC>>
と同じ意味を持たないことに気付きました。Javaでは、最初のビットを同じ値に保つ符号付きシフトです。Javaでは、Cシフトに相当するのは演算子です。左シフト演算子()はCと同じで、最初のビットを無視してシフトします。>>
>>
>>>
<<
私が疑問に思ったことは
- なぜこの変更を行うのですか?
- 表記が一貫していないのに、>>と<<は符号付きシフトであり、>>>と<<<は符号なしであるのはなぜですか?
- 符号付きシフト演算子の用途はありますか?