2.1.4.1 整数タイプにおけるビット文字列演算

単純整数とロング整数タイプは、ビット文字列に対してのみ意味のある特別な演算をサポートしています。負の数は2の補数として扱われます。(ロング整数に対しては演算中にオーバフローが発生しない十分大きなビット数を仮定します。)

ビット毎の2項演算の優先順位はすべて数値演算より低く、比較演算より高くなります。 単項演算"~"は他の単項数値演算("+"と"-")と同じ優先順位を持ちます。

この表はビット文字列演算を優先順位の低いものから高いもの順にリストしています。 (同じボックス内の演算は同じ優先順位を持ちます。)

演算 結果
x | y xy のビット毎の 論理和
x ^ y xy のビット毎の 排他的論理和
x & y xy のビット毎の 論理積
x << n xを左にnビットだけシフトしたもの (1), (2)
x >> n xを右にnビットだけシフトしたもの (1), (3)
~x xのビットを反転したもの
    

注:

(1)
負のシフトカウントは不正でValueErrorが発生する。
(2)
nビット左にシフトすることはオーバフローチェックをせずpow(2, n)を掛けることと同じ。
(3)
nビット右にシフトすることはオーバフローチェックをせずpow(2, n)で割ることと同じ。

guido@python.org