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²で割った値)になります
このように、シフト演算は乗算や除算の代わりとしても利用できるため、パフォーマンスが求められる処理で活用されることがあります。
-
Python 3の標準データ型とは?数値・シーケンス・辞書の基本をわかりやすく解説
Python 3の標準データ型の概要Python 3に標準で用意されているデータ型は、大きく分けて「数値型」「シーケンス型」「辞書(ディクショナリ)型」の3つに分類できます。辞書はキーと値のペアを格納するコレクションであり、Pythonプログラミングにおいて最も頻繁に使われるデータ構造の一つです。数値型(Numeric Types)数値型には「整数(int)」「浮動小数点数(float)」「複素数(complex)」の3種類があります。整数(int):小数点を含まない整数値です。例:10、-10浮動小数点数(float):小数部分を持つ実数です。例:1.55、0.005複素数(complex)
-
Pythonの主なデータ型変換関数まとめ|int・float・str・listなどの使い方を実例付きで解説
Pythonには、あるデータ型から別のデータ型へ値を変換するための組み込み関数が多数用意されています。この記事では、数値変換やコレクション変換に使える主要なデータ変換関数を、実際の実行例とともにわかりやすく解説します。 数値データの変換関数 int():整数への変換 浮動小数点数や、整数を表す文字列を整数(int)オブジェクトに変換します。文字列を変換する場合は、第2引数に基数を指定することで、8進数や16進数の文字列を整数に変換することもできます。 >>> int(11) 11 >>> int(11.15) 11 >>> int(2