質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

943閲覧

ビット演算 or と | の違い python

tamap

総合スコア12

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2021/07/13 05:43

python 3.7 使っています。

ネットで検索したら、論理和 で、OR は | と同じと出てきます。
以下例
https://qiita.com/7shi/items/41d262ca11ea16d85abc#%E8%AB%96%E7%90%86%E5%92%8C-or

ですが、やってみたら結果が違うことがありました。

a = 0b1011
b = 0b1101

 
以下計算

bin(a or b) # 結果(A)

'0b1011'

bin(a | b) # 結果(B)

'0b1111'

 
教科書的には、結果(B)が正しいと思うので、結果(A)は何だろう、、と。

どなたか分かる方教えていただければ幸いです。
また、今後は
or よりも、 | を使う方が安全な気がしました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

6.9. ビット単位演算の二項演算 — Python 3.9.4 ドキュメント

| 演算子は、引数同士のビット単位の (包含的) OR を与えます。引数は整数でなければなりません。

6.11. ブール演算 — Python 3.9.4 ドキュメント

式 x or y は、まず x を評価します; x が真なら x の値を返します; それ以外の場合には、 y の値を評価し、その結果を返します。

投稿2021/07/13 05:49

ozwk

総合スコア13553

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tamap

2021/07/13 06:20

ありがとうございます!
guest

0

ベストアンサー

どちらも論理演算ですが、コーディングの際にはビット演算(ビットごとの論理演算)とブール演算の区別が必要です。

前の質問での私の回答が混乱させてしまったかもしれないですね。

こちらに少し詳しく書かれています。

知識整理:Pythonで演算子を混合する際の注意事項 - Qiita

投稿2021/07/13 05:50

itagagaki

総合スコア8402

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tamap

2021/07/13 06:21

ありがとうございます。先ほどからの流れ、含めてありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問