プロが教える店舗&オフィスのセキュリティ対策術

JAVAを現在勉強中なのですが。
ビット演算子のところで悩んでいます。

「~」のビットごとの補数とはいったいどういうものでどういった時に使うのか、
「>>」と「>>>」のシフトの違いがなんなのかよくわかりません。
簡単でいいので教えていただければ嬉しいです。

A 回答 (1件)

補数を使う場面は幾つかあるのですが、例えば、あるビットだけを OFF したい


(ビットのリセット)ときに使います。

mask = 8;
data = data & ~mask;

とやると、4ビット目だけ OFF になり、他のビットは元の状態のままです。

>> と >>> の違いは、符号ビットの扱いです。一番左のビットは符号ビット
といって、その数値が正か負かを表します。

>>> は、単純にビットをずらすので、一番左のビットは、必ず OFF になります。
>> は、正負の情報を保ちつつビットをずらすので、もし、シフト前に ON で
あれば、シフト後にも一番左のビットは ON のままです。
    • good
    • 0
この回答へのお礼

a-kuma様ありがとうございました。
ビット演算子について、少し理解できたように思えます。

お礼日時:2001/09/11 09:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!