#38

IPアドレスとビット:4つの数字の正体

192.168.1.10 が実は32ビットでできていることを2進数で確かめます。

解説

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ビットになることを確かめてみよう。

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

もっと本格的に使うなら

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