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

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

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

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