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

Pythonのビット演算子「|」(縦棒)とは?ビットごとのOR演算をわかりやすく解説

Pythonにおける「|」(垂直バー)の意味

Pythonで使用される垂直バー(|)は、ビットごとのOR(bitwise OR)演算子を表します。2つの整数オブジェクトに対してこの演算子を適用すると、それぞれの数値を2進数に変換したうえで、各ビット位置ごとにOR演算が実行され、その結果が返されます。

OR演算では、対応するビットのどちらか一方でも「1」であれば、結果は「1」になります。両方とも「0」の場合のみ「0」となります。

実際のコード例

以下の例では、整数 45 に対してビットごとのOR演算を行っています。

>>> a = 4
>>> bin(a)
'0b100'
>>> b = 5
>>> bin(b)
'0b101'
>>> a | b
5
>>> c = a | b
>>> bin(c)
'0b101'

処理の流れを解説

まず、組み込み関数 bin() を使うと、整数を2進数表現の文字列として確認できます。

  • a = 4 → 2進数で 0b100
  • b = 5 → 2進数で 0b101

これらに対して a | b を計算すると、各ビットは次のように評価されます。

  100  (4)
| 101  (5)
------
  101  (5)

結果として得られる 0b101 は10進数で 5 となります。つまり、a | b の戻り値は 5 です。

まとめ

Pythonの垂直バー(|)は、2つの整数の各ビットを比較し、どちらかが1であれば1を返すビットごとのOR演算を行う演算子です。フラグ管理やマスク処理など、低レベルのビット操作が必要な場面でよく活用されます。

  1. Pythonの「not in」演算子とは?使い方と動作をわかりやすく解説

    Pythonには、要素があるシーケンス(リスト・タプル・文字列など)に含まれていないことを判定するための「not in」というメンバーシップ演算子が用意されています。 not in 演算子は、指定したシーケンスの中に変数が見つからない場合に True を返し、見つかった場合は False を返します。以下に具体的な例を示します。 >>> a = 10 >>> b = 4 >>> l1 = [1,2,3,4,5] >>> a not in l1 True >>> b not in l1 False この例で

  2. Pythonのドット(.)とは?属性やメソッドへのアクセス方法をわかりやすく解説

    Pythonにおける「ドット(.)」の基本 Pythonでは、ほぼすべての要素がオブジェクトとして扱われます。そして、すべてのオブジェクトには、それぞれ固有の属性(アトリビュート)とメソッドが備わっています。オブジェクトと、それらの属性やメソッドとをつなぐ役割を果たすのが、「ドット(.)」という記号です。 具体例:Dogクラスを使って理解しよう 例えば、「Dog(犬)」というクラスがあるとします。このとき、Fidoという名前の犬は、Dogクラスのインスタンス(オブジェクト)に相当します。 class Dog: pass Fido = Dog() このクラスに eats()(食べ