5.7 シフト演算 (shifting operation)

シフト演算は、算術演算よりも低い優先順位を持っています:

shift_expr ::= a_expr | shift_expr ( "<<" | ">>" ) a_expr
Download entire grammar as text.

シフトの演算子は整数または長整数を引数にとります。 引数は共通の型に変換されます。シフト演算では、最初の引数を 二つ目の引数に応じたビット数だけ、左または右にビットシフト します。

n ビットの右シフトは、pow(2,n) による除算 として定義されています。 n ビットの左シフトは、 pow(2,n) による乗算として定義されています; 整数の場合、桁あふれ (overflow) のチェックはされないので、 演算によって末端のビットは捨てられます。また、結果の絶対値が pow(2, 31) よりも小さくない場合には、符号の反転が起こります。 負のビット数でシフトを行うと、 ValueError 例外を 送出します。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。