next up previous contents index
Next: Binary bit-wise operations Up: Expressions and conditions Previous: Binary arithmetic operations

Shifting operations

  

The shifting operations have lower priority than the arithmetic operations:

shift_expr:     a_expr | shift_expr ( "<<" | ">>" ) a_expr

These operators accept plain or long integers as arguments. The arguments are converted to a common type. They shift the first argument to the left or right by the number of bits given by the second argument.

A right shift by n bits is defined as division by pow(2,n). A left shift by n bits is defined as multiplication with pow(2,n); for plain integers there is no overflow check so this drops bits and flips the sign if the result is not less than pow(2,31) in absolute value.

Negative shift counts raise a ValueError exception.   



guido@cwi.nl