Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのビット演算子の種類と使い方をわかりやすく解説

ビット演算子(Bitwise Operators)とは、数値を2進数のビット単位で操作するための演算子です。Pythonでは、以下の6種類のビット演算子が定義されています。

Pythonで使えるビット演算子の一覧

  • &(ビット単位AND):両方のビットが1の場合のみ1を返します
  • |(ビット単位OR):どちらか一方でも1であれば1を返します
  • ^(ビット単位XOR・排他的論理和):片方のビットだけが1の場合に1を返します
  • ~(ビット反転・補数):ビットが0なら1へ、1なら0へ反転します
  • <<(左シフト):ビットを左へシフトし、右側の空いたビットは0で埋められます
  • >>(右シフト):ビットを右へシフトし、左側の空いたビットは0で埋められます

具体的な計算例

ここでは、a = 60(2進数で 0011 1100)、b = 13(2進数で 0000 1101) を例に、各演算子の動作を確認してみましょう。

a&b = 0000 1100 = 12
a|b = 0011 1101 = 61
a^b = 0011 0001 = 49
~a  = 1100 0011 = -61
a<<2 = 1111 0000 = 240
a>>2 = 0000 1111 = 15

結果のポイント

  • a & b = 12:両方のビットが共通して1になっている部分だけが残ります
  • a | b = 61:いずれかに1があるビットがすべて1になります
  • a ^ b = 49:ビットの状態が異なる部分だけが1になります
  • ~a = -61:Pythonでは負の整数を2の補数表現で扱うため、反転結果は -61 となります
  • a << 2 = 240:左に2ビットシフトすると、元の値の4倍(2²倍)になります
  • a >> 2 = 15:右に2ビットシフトすると、元の値の4分の1(2²で割った値)になります

このように、シフト演算は乗算や除算の代わりとしても利用できるため、パフォーマンスが求められる処理で活用されることがあります。

  1. Python 3の標準データ型とは?数値・シーケンス・辞書の基本をわかりやすく解説

    Python 3の標準データ型の概要Python 3に標準で用意されているデータ型は、大きく分けて「数値型」「シーケンス型」「辞書(ディクショナリ)型」の3つに分類できます。辞書はキーと値のペアを格納するコレクションであり、Pythonプログラミングにおいて最も頻繁に使われるデータ構造の一つです。数値型(Numeric Types)数値型には「整数(int)」「浮動小数点数(float)」「複素数(complex)」の3種類があります。整数(int):小数点を含まない整数値です。例:10、-10浮動小数点数(float):小数部分を持つ実数です。例:1.55、0.005複素数(complex)

  2. Pythonの主なデータ型変換関数まとめ|int・float・str・listなどの使い方を実例付きで解説

    Pythonには、あるデータ型から別のデータ型へ値を変換するための組み込み関数が多数用意されています。この記事では、数値変換やコレクション変換に使える主要なデータ変換関数を、実際の実行例とともにわかりやすく解説します。 数値データの変換関数 int():整数への変換 浮動小数点数や、整数を表す文字列を整数(int)オブジェクトに変換します。文字列を変換する場合は、第2引数に基数を指定することで、8進数や16進数の文字列を整数に変換することもできます。 >>> int(11) 11 >>> int(11.15) 11 >>> int(2