>>
名称
>>
説明
ビット単位の右シフト演算子(»)は、左辺のオペランドを、右辺のオペランドで指定した数だけ、右シフトさせる。
書式
variable >> number_of_bits;
引数
varable | 整数(利用できるデータ型:byte, int, long)。 |
number_of_bits | 32以下の整数(利用できるデータ型:int)。 |
使用例
|
|
注意
xをyビット分右シフトするとき(x » y)、xの最上位ビットが1であれば、その振る舞いはxのデータ型に依存する。xがint型のとき、最上位ビットは符号ビットであり、xが負の値かそうでないかを決めると先に説明した。この場合は、歴史的な理由により、符号ビットが右ビットにコピーされる。
|
|
符号拡張と呼ばれるこの振る舞いは、望まない振舞いであることも多い。そうではなく、0が左からシフトしてほしいこともあるだろう。unsigned int型の式に対する右シフトの振舞いは異なるので、キャスト演算を使うことで1がコピーされるのを防ぐことができる。
|
|
注意深く符号拡張を避けることができるのであれば、ビット単位の右シフト演算子は2のべき乗で割るときに利用できる。
|
|
参照
利用例 Bitmath Tutorial
オリジナルのページ
https://www.arduino.cc/reference/en/language/structure/bitwise-operators/bitshiftright/
Last Revision: 2019/02/19
最終更新日
January 4, 2024