IPアドレスと2進数|10進数⇔2進数の変換方法
最終更新日: 2026年6月28日
普段わたしたちが目にするIPアドレスは「192.168.10.1」のような10進数の形ですが、コンピュータの内部では2進数(0と1)で扱われています。サブネット計算やサブネットマスクの理解には、この2進数の感覚が欠かせません。この記事では、IPアドレスと2進数の関係、そして10進数と2進数の変換方法を具体例でわかりやすく解説します。
IPアドレスは32ビット
IPv4のIPアドレスは、全部で32ビット(0か1が32個)で表されます。ただし32個の0と1を一気に書くと読みにくいので、8ビットずつ4つのまとまりに区切り、それぞれを10進数に直して「.(ドット)」でつないでいます。この8ビットのまとまりをオクテットと呼びます。
つまり「192.168.10.1」は、8ビット×4オクテット=32ビットを、人間が読みやすいように10進数で表記したものなのです。
1オクテットで表せる範囲
1オクテットは8ビットなので、表せる値は 2 の8乗 = 256通り、つまり 0〜255 です。IPアドレスの各オクテットが0〜255の範囲に収まるのはこのためです。256以上の数字(例: 192.300.1.1)がIPアドレスとして無効なのも、8ビットで表せないからだと分かります。
2進数の「重み」を覚える
8ビットの各桁には、左から順に次の「重み」があります。これを覚えるのが変換の第一歩です。
- 128 ・ 64 ・ 32 ・ 16 ・ 8 ・ 4 ・ 2 ・ 1
各桁が「1」ならその重みを足し、「0」なら足しません。これだけで2進数と10進数を行き来できます。
2進数 → 10進数の変換手順
例として 2進数 11000000 を10進数に直してみましょう。各桁の重みと並べて、1の桁だけ足します。
- 1×128 + 1×64 + 0×32 + 0×16 + 0×8 + 0×4 + 0×2 + 0×1
- = 128 + 64 = 192
つまり 11000000 は 192 です。もう一つ、10101000 なら 128 + 32 + 8 = 168 になります。
10進数 → 2進数の変換手順
逆に10進数を2進数へ直すときは、重みの大きい方(128)から順に「引けるか?」を確認していきます。例として 168 を変換します。
- 168 − 128 = 40 → 128の桁は「1」
- 40 は 64 より小さい → 64の桁は「0」
- 40 − 32 = 8 → 32の桁は「1」
- 8 は 16 より小さい → 16の桁は「0」
- 8 − 8 = 0 → 8の桁は「1」
- 残り0なので 4・2・1 の桁はすべて「0」
並べると 10101000。先ほどの逆算と一致しました。このように「大きい重みから引けるだけ引く」と覚えると確実です。
サブネットマスクと2進数の関係
2進数が分かると、サブネットマスクの仕組みもすっきり理解できます。サブネットマスクは「先頭から連続する1がネットワーク部、残りの0がホスト部」を表す32ビットの値でした。たとえば /24 のマスク 255.255.255.0 は、2進数で書くと 11111111.11111111.11111111.00000000 となり、先頭24個の1がネットワーク部を示していることが一目で分かります。255 = 11111111、0 = 00000000 であることを、この記事の変換手順でぜひ確かめてみてください。
まとめ
IPアドレスは32ビット=8ビット×4オクテットで、各オクテットは0〜255で表されます。128/64/32/16/8/4/2/1 の重みを使えば、2進数と10進数は自由に変換できます。この感覚はサブネット計算やサブネットマスクの理解に直結するので、繰り返し練習して身につけましょう。