Pythonのビット演算子「|」(縦棒)とは?ビットごとのOR演算をわかりやすく解説
Pythonにおける「|」(垂直バー)の意味
Pythonで使用される垂直バー(|)は、ビットごとのOR(bitwise OR)演算子を表します。2つの整数オブジェクトに対してこの演算子を適用すると、それぞれの数値を2進数に変換したうえで、各ビット位置ごとにOR演算が実行され、その結果が返されます。
OR演算では、対応するビットのどちらか一方でも「1」であれば、結果は「1」になります。両方とも「0」の場合のみ「0」となります。
実際のコード例
以下の例では、整数 4 と 5 に対してビットごとの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演算を行う演算子です。フラグ管理やマスク処理など、低レベルのビット操作が必要な場面でよく活用されます。
-
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 この例で
-
Pythonのドット(.)とは?属性やメソッドへのアクセス方法をわかりやすく解説
Pythonにおける「ドット(.)」の基本 Pythonでは、ほぼすべての要素がオブジェクトとして扱われます。そして、すべてのオブジェクトには、それぞれ固有の属性(アトリビュート)とメソッドが備わっています。オブジェクトと、それらの属性やメソッドとをつなぐ役割を果たすのが、「ドット(.)」という記号です。 具体例:Dogクラスを使って理解しよう 例えば、「Dog(犬)」というクラスがあるとします。このとき、Fidoという名前の犬は、Dogクラスのインスタンス(オブジェクト)に相当します。 class Dog: pass Fido = Dog() このクラスに eats()(食べ