そろそろ新年度。新たなスキルを習得しようという読者も多いことでしょう。そこで、日経NETWORKで好評だった連載「ネットワークの数学」(2005年10月号~2006年3月号掲載)を再編集して公開します。本日から6日間集中して、数学を学びませんか。
日常生活で数値が出てくるときは、基本的に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進数に直して合計する必要があります。