シフト演算は、算術演算よりも低い優先順位を持っています:
shift_expr | ::= | a_expr | shift_expr ( "<<" | ">>" ) a_expr |
シフトの演算子は整数または長整数を引数にとります。 引数は共通の型に変換されます。シフト演算では、最初の引数を 二つ目の引数に応じたビット数だけ、左または右にビットシフト します。
n ビットの右シフトは、pow(2,n)
による除算
として定義されています。 n ビットの左シフトは、
pow(2,n)
による乗算として定義されています;
整数の場合、桁あふれ (overflow) のチェックはされないので、
演算によって末端のビットは捨てられます。また、結果の絶対値が
pow(2, 31)
よりも小さくない場合には、符号の反転が起こります。
負のビット数でシフトを行うと、 ValueError 例外を
送出します。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。