2020-12-21に更新

ネットワーク基礎~IPv4アドレスの計算方法~

IPv4アドレスの計算方法

IPv4アドレスの基数変換(2進数⇔10進数)は、CCNAなどの資格勉強でよく出てきます。
仕事する上では、計算はExcelやらアプリやらで行うのが、ミスがなくて良いと思うけど
計算方法が分かっていた方が理解が深まるし、打合せの場などいざという時に役に立つと思う…

■IPv4アドレスとは

 IPv4アドレスは2進数8ビット、4オクテット=32ビットの値で、
 10進数で表記される。
 ※1オクテット = 8bit

 192.168.100.1
11000000.10101000.01100100.00000001

・2進数の計算になれる
 2進数の桁上がりは2のn乗で加算される
00000001 = 2^0 = 1
00000010 = 2^1 = 2
00000100 = 2^2 = 4
00001000 = 2^3 = 8
00010000 = 2^4 = 16
00100000 = 2^5 = 32
01000000 = 2^6 = 64
10000000 = 2^7 = 127

■組み合わせを覚える

この8ビットの範囲での最大値は255

  • 上位ビットからの加算
    2進数で上位のビットから加算していくと、下記になる
    ※この値はサブネットマスクからプレフィックス値を求めるのに便利なので覚えておく

10000000 = 128
11000000 = 192
11100000 = 224
11110000 = 240
11111000 = 248
11111100 = 252
11111110 = 254
11111111 = 255

  • 下位ビットからの加算
     2進数で下位のビットから加算していくと、「次の上位ビット-1」した数値になる。
     例えば、01111111は「次の上位ビット(128)-1」で127とすぐに出てくる。
     これは2進数では全てのビットが1になったら桁上がりするルールに基づく。
    00000001 = 1
    00000011 = 3
    00000111 = 7
    00001111 = 15
    00011111 = 31
    00111111 = 63
    01111111 = 127
    11111111 = 255

  • 間に1個だけ0がある数値
     例として11011111をすぐに10進数変換するには、先ほどの2進数の桁上がりを意識すると良い。
     この値に1を足すと、11100000となるので、「桁上がりした数値(224)-1」で223になる。

    • 他よく使う値
      01100000 = 96
      01100100 = 100
      10100000 = 160
      10101100 = 172

■10進数から2進数へ変換

 先ほどの組み合わせを覚えていると、計算時間が短くなるが、
 それを考慮しない場合は次の計算で求められる。
 
 226を2進数に基数変換する

方法① 教科書通り

226/2 = 113・・・余り0
113/2 = 56 ・・・余り1
56/2 = 28 ・・・余り0
28/2 = 14 ・・・余り0
14/2 = 7 ・・・余り0
7/2 = 3 ・・・余り1
3/2 = 1 ・・・余り1

と、解が1もしくは0になるまで除算していき、解1に余りの値を下から足していく
 11100010
基数変換できた。

方法②上位のビットから最大数を減算していく

226 - 128 = 98
98 - 64 = 34
34 - 32 = 2
2 - 2 = 0
こちらは解が0になるまで減算していく方法だが、
この時注意が必要なのは引く値は最大ビットから選択する事である。
そうすることで、2進数表記で1がたっているビットだけが、減算式のなかにでてくる
今回は128,64,32,2のビットが1で、それ以外は全て0である。
11100010

方法③組み合わせの暗記

 今回の10進数226は224に2だけ足した値である。
 そのため、前述の組み合わせから224 = 11100000 2 = 00000010
 あとは足してやればすぐに求まる。
 組み合わせを覚えておくと、パターンに近い値はすぐに求まる。

ツイッターでシェア
みんなに共有、忘れないようにメモ

Nata

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント