#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進数で表示して、桁ごとに演算される様子を確かめよう。

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

自分のPCでも続けてみませんか

Windows版 InsightPy は Python を同梱しているので、環境構築なしで同じコードを書いて実行できます。 書いたコードを保存しておけるほか、ステップ実行で変数の変化を1行ずつ確かめられます。 個人の学習や私的な目的でのご利用は、31日目以降も無料です(スクリプトの保存は10本まで)。 このブラウザ版の学習センターも、引き続き無料でお使いいただけます。