ネットワーク技術の本を読んでいると,見慣れない計算式や用語につまずくことがあります。ここでは,ネットワークに関係する代表的な計算式について,その必要性と具体的な計算方法,適用例を解説していきます。今回 のテーマは基数変換です。
図1●2進数,10進数,16進数の特徴 |
日常生活で数値が出てくるときは,基本的に10進数です。つまり,0~9の10個の文字を使って数を表現します。しかし,コンピュータ・ネットワークの世界では2進数が基準になっています。2進数は1と0の二つの文字だけで数を表現します。これはなぜなのでしょうか。
それは,コンピュータにとっては10進数よりも2進数の方が扱いやすいからです。オンとオフ,あるいは5Vと0Vのように,コンピュータ内の電気回路は二つの異なる状態を作り出したり,その違いを読み取るのが比較的簡単にできます。ただし人間にとっては,2進数は扱いにくいものです。大きな数を表記しようとすると桁数が多くなります。例えば10進数の9を2進数で表すと,1001と4桁が必要になります。そこで登場するのが16進数です。
なぜ10進数を飛び越して16進数なのかというと,2進数⇔16進数の変換が簡単だからです。ただし,2進数の0000~1111が16進数の0~Fに1対1で対応していることは押さえている必要があります。これさえ知っていれば,どんなに長い桁数の2進数でも4桁(4ビット)ごとに区切って,それぞれを16進数1文字に変換できます。
一方,2進数を10進数に変換するには,2進数の各桁を10進数に直して合計する必要があります。
図2●基数変換 |
キロは1000?,それとも1024?
図3●キロは1000?1024? |
基数変換の方法はここまでにして,話題を少し変えましょう。同じ読みの「キロ」でも10の3乗(=1000)のときは小文字のkを使い,2の10乗(=1024)のときは大文字のKを使って表記するのは,ご存じでしょうか(Kの方は「ケイ」と呼んだりするケースもあります)。
例えば,ネットワークの速度を表すときに使う単位は「ビット/秒」です。1秒間に何ビットを送れるかという意味です。1kビット/秒と表記した場合は,毎秒103ビット=1000ビットを送るという意味になります。
ところが,コンピュータ・メモリーの容量を表すときはKが使われます。1Kバイトは1024バイトです。これはOSのアドレス空間が2進数ベースで振られているため,2の累乗にした方が扱いやすいからです。
ちなみに国際電気標準会議(IEC)では,k(1000)と区別するためにK(1024)のことを「キロバイナリ(kilobinary),略してキビ(kibi)と呼ぶ」と定めていますが,あまり普及していません。
|