解説
10進数の「123」が 1×100 + 2×10 + 3×1 であるように、どの位取り記数法も「数字×その桁の重み」の合計です。10進数の重みは10のべき乗、2進数の重みは2のべき乗になります。
2進数 1101 は、右から順に 2^0=1, 2^1=2, 2^2=4, 2^3=8 の重みを持ちます。各桁にこの重みをかけて足すと 1+0+4+8 = 13 です。
文字列を右から見て桁ごとの計算過程を表示し、最後に int(文字列, 2) と一致することを確認します。
書き方
位取り記数法: 各桁の数字 × その桁の重み(2進数は2のべき乗)の合計が10進数。
・2 ** power でべき乗(桁の重み)を計算。
・reversed(文字列) で右(末尾)から1文字ずつ取り出す。
・int(文字) で1桁を数値に、int(文字列, 2) で2進数文字列を直接10進数に変換。
・f"...{値}..." のf文字列で計算過程を表示。書いて動かす
この回の課題
2進数 "1101" を右の桁から重み(2のべき乗)をかけて足し合わせ、int(文字列, 2) と同じ13になることを確かめよう。
コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。
もっと本格的に使うなら
Windows版 InsightPy なら、書いたコードを保存して業務の自動化まで進められます。学習センターはずっと無料です。