クラスレス(27bitなど切りの悪いサブネットマスク)のネットワークアドレスやブロードキャストアドレスを算出するためには、IPv4アドレスのオクテット1つを2進数に変換してやる必要があります。ここでは 198 の2進数変換を例にとり、その方法をご紹介します。
これは2進数の8桁を表していて左から順に、2の7乗、2の6乗、、、となります。例えば 12 は次のように2進数で表現できます。
では問題の 198 をこのテンプレートに当てはめてみましょう。最初に一番左の 128 と、対象の 198 と比較し、128 より大きければ下記のように 128 の位に 1 を立てます。
次に 128 に 1 が立ちましたので、198 から 128 を引いた 70 と、次の桁 64 を比較します。70 の方が大きいので 64 の桁も 1 が立ちます。
同様に三番目の桁 32 と、70 から 64 を引いた 6 を比較します。32 の方が大きいのでこの桁は 0 が立ちます。
次の桁 16 も、その次の桁 8 も比較対象の 6 より大きいので、0 が立ちます。
同様に比較と、1 か 0 の入力を繰り返すと 198 は次の2進数になります。
1 ~ 254 までの数をこの方法で2進数に何回も変換すると、だんだん頭が慣れてきます。
慣れてくるとテンプレートがなくてもできるようになるでしょう。
変換した2進数が正しいか不安な方は、逆算で 1 がたった桁の 2 の n乗(n=0~7)を
足していけば元の10進数になりますので検算にご利用ください。
2の1乗 + 2の2乗 + 2の6乗 + 2の7乗 = 198
written by 伊藤豪朗