- ベストアンサー
ビット演算子について
JAVAを現在勉強中なのですが。 ビット演算子のところで悩んでいます。 「~」のビットごとの補数とはいったいどういうものでどういった時に使うのか、 「>>」と「>>>」のシフトの違いがなんなのかよくわかりません。 簡単でいいので教えていただければ嬉しいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
補数を使う場面は幾つかあるのですが、例えば、あるビットだけを OFF したい (ビットのリセット)ときに使います。 mask = 8; data = data & ~mask; とやると、4ビット目だけ OFF になり、他のビットは元の状態のままです。 >> と >>> の違いは、符号ビットの扱いです。一番左のビットは符号ビット といって、その数値が正か負かを表します。 >>> は、単純にビットをずらすので、一番左のビットは、必ず OFF になります。 >> は、正負の情報を保ちつつビットをずらすので、もし、シフト前に ON で あれば、シフト後にも一番左のビットは ON のままです。
お礼
a-kuma様ありがとうございました。 ビット演算子について、少し理解できたように思えます。