Pythonのビット演算子はどのように使いますか?

Python のビット演算子には、AND 演算子 (&)、OR 演算子 (|)、XOR 演算子 (^)、NOT 演算子 (~)、左シフト演算子 (<<)、および右シフト演算子 (>>) などがあります。

各ビット演算子の演算規則は下表の通りです。

  1. AND 演算(&):2 つの対応するビットが両方 1 のとき、結果が 1 になる。それ以外の場合は、0 になる。

5と3は1

5の2進表記は101、3の2進表記は011で、対応するビットに1があるため、結果は001(1)となります。

  1. OR演算(|):対応する2つのビットのうち1つでも1であれば1、そうでなければ0になる。

5と3を足すと7になる

5を2進数に直すと101、3を2進数に直すと011となり、それぞれの対応する位置に1が必ず1つずつあるため、結果は111となり、7となります。

  1. 排他的論理和(XOR): 対応する2進数のビットが異なると1になり、同じだと0になります。

5の3乗は6

5の2進数は101で、3の2進数は011。対応する位で1つ違っているため、結果は110、つまり6になる。

  1. ビット毎の反転(~):数値の各バイナリ桁を反転する演算で、0は1に、1は0に変化します。

5 およそ -6

5の2進数表現は101、各2進数ビットを反転すると010になり、符号ビット1を加えると-6になります。

  1. ビットを左にシフトする(<<):数値の2進表現を指定されたビット位置左に移動し、右側にゼロを追加する。

5 << 2 = 20

5を2進数で表すと101で、これを2ビット左へシフトさせると10100となり、これは20を意味します。

  1. 数値の2進表記を指定されたビット数右へシフトし、左側を0で埋める。

サンプル: 10 ÷ 5 = 2

5を2進数で書くと101、右へ2ビットずらすと1、つまり1になる。

演算子は整数型オペランドに対してのみ使用できます。

bannerAds