解説
IPv4のIPアドレスは「192.168.1.10」のように4つの数字をドットで区切って書きます。それぞれの数字は0〜255の範囲で、これは8ビット(2の8乗=256通り)で表せる数とちょうど一致します。
4つ × 8ビット = 32ビット。つまりIPアドレスの正体は32個の0と1の並びです。format(n, "08b") で各数字を8桁の2進数に変換し、つなげると32ビットになることを確かめます。
書き方
・format(n, "08b"): 整数 n を8桁ゼロ詰めの2進数文字列に変換する。
・'.'.join(str(n) for n in ip): 各数値を文字列にして '.' でつなぐ。
・"".join(binary_parts): 4つの8ビットを連結して32ビットにする。
・int(full, 2): 2進数文字列を10進整数に変換する(第2引数 2 は基数)。
・f"{n:>3}": f文字列で右寄せ3桁に整形。書いて動かす
この回の課題
IPアドレスの4つの数字を各8ビットの2進数に変換し、つなげると32ビットになることを確かめてみよう。
コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。
自分のPCでも続けてみませんか
Windows版 InsightPy は Python を同梱しているので、環境構築なしで同じコードを書いて実行できます。 書いたコードを保存しておけるほか、ステップ実行で変数の変化を1行ずつ確かめられます。 個人の学習や私的な目的でのご利用は、31日目以降も無料です(スクリプトの保存は10本まで)。 このブラウザ版の学習センターも、引き続き無料でお使いいただけます。