255までの10進数を2進数に素早く変換する方法


クラスレス(27bitなど切りの悪いサブネットマスク)のネットワークアドレスやブロードキャストアドレスを算出するためには、IPv4アドレスのオクテット1つを2進数に変換してやる必要があります。ここでは 198 の2進数変換を例にとり、その方法をご紹介します。

まず次のようなテンプレートを作成します。

これは2進数の8桁を表していて左から順に、2の7乗、2の6乗、、、となります。例えば 12 は次のように2進数で表現できます。


1 が立っている 8 と 4 を足すと 12 になります。

では問題の 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 伊藤豪朗

  • このエントリーをはてなブックマークに追加

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

PAGE TOP