###
2.3.4.1 整数型におけるビット文字列演算

通常および長整数型ではさらに、ビット文字列に対してのみ意味のある 演算をサポートしています。負の数はその値の 2 の補数の値として扱われます (長整数の場合、演算操作中にオーバフローが起こらないように十分なビット数 があるものと仮定します) 。

2 進のビット単位演算は全て、数値演算よりも低く、比較演算子よりも高い 優先度です; 単項演算 "`` " は他の単項数値演算 ("`+`" および "`-`") と同じ優先度です。

以下のテーブルでは、ビット文字列演算を優先度の低いものから順に並べています (同じボックス内の演算は同じ優先度です):

演算 | 結果 | 注釈
--- | --- | ---
`x | y` | ビット単位の x と y の 論理和 |
`x ^ y` | ビット単位の x と y の 排他的論理和 |
`x & y` | ビット単位の x と y の 論理積 |
`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)` による除算と等価です。