#29

ビット演算 AND / OR / XOR

&・|・^ が数を2進数とみなして桁ごとに演算する様子を確かめます。

解説

前のレッスンでは1桁の論理演算を作りました。Pythonの演算子 & | ^ は、整数を2進数とみなして「同じ位置の桁どうし」で一斉に論理演算してくれます。 例えば 12(=1100) と 10(=1010) で、& は両方1の桁だけ1(=1000)、| はどちらか1なら1(=1110)、^(XOR)は異なるとき1(=0110)になります。 XORは「違うかどうか」を判定する演算で、暗号や誤り検出、半加算器でも主役になります。

書き方

ビット演算子: & AND(両方1の桁が1)/ | OR(どちらか1の桁が1)/ ^ XOR(異なる桁が1)。整数を2進数とみなし桁ごとに一斉演算する。
・0b1100 のように 0b を付けると2進数で数値を書ける。
・bin(整数) で結果を2進数文字列に戻して確認。

書いて動かす

この回の課題

12と10に対して & ・ | ・ ^(XOR)を計算し、結果を2進数と10進数で表示して、桁ごとに演算される様子を確かめよう。

コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。

もっと本格的に使うなら

Windows版 InsightPy なら、書いたコードを保存して業務の自動化まで進められます。学習センターはずっと無料です。