>> (bitshift right)

説明

右シフト演算子 >> は、左側オペランドのビットを右側オペランドで指定された数だけ右にシフトさせます。

構文

変数を使用します。許容されるデータ型:byte、int、long。
number_of_bits: < = 32 である数。許可されるデータ型:int。

プログラム例

注意と警告

xを右にyビットシフトし(x >> y)、xの最上位ビットが1の場合、その動作はxの正確なデータ型に依存します。xがint型の場合、最上位ビットは符号ビットであり、前述したようにxが負であるかどうかを決定します。この場合、歴史的に難解な理由から、符号ビットは下位ビットにコピーされます。

この動作は符号拡張と呼ばれますが、多くの場合、希望する動作ではありません。代わりに、ゼロを左からシフトしたい場合があります。右シフトのルールはunsigned int式では異なることがわかっているので、型キャストを使って左からコピーされるものを抑制することができます。
符号の拡張に注意すれば、右シフト演算子 >> を2の累乗で割る方法として使うことができます。 例えば
タイトルとURLをコピーしました