解説
前のレッスンでは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本まで)。 このブラウザ版の学習センターも、引き続き無料でお使いいただけます。