デジタルの表現
先生、さっき言っていた2進法って何なんですか?
それを今から勉強するんだよ。
まずは、2進法と2進数の勉強から始めよう。
数値と文字の表現
私たちが普段使っている数は0~9の数字を用いて表され、9の次の数が位が上がって10になる10進法というものである。また、10進法以外の代表的な命数法としてコンピュータで使われる0,1の二つだけで数を表す2進法や0〜9に加え、A~Fを使う16進法などがある。 また、2進法で表された数を2進数、16進法で表された数を16進数という。
これらの二進数は情報の試験などで計算を求められる場合も多い。計算方法も勉強しよう。
計算ですか…できるかなぁ。
素因数分解ができるならこれも簡単なはずだよ。でもケアレスミスはないようにね。
2進数の計算
2進数の計算には10進数→2進数の変換、2進数→10進数の変換、がある。ここでは10進数→2進数の計算方法を説明する。
①10進数→2進数
数をその商がゼロになるまで2で割り、その時の余りを下から順に並べることによって求めることができる。
余りを出す計算は久しぶりな人が多いだろうから変に間違えないように気を付けよう。
②2進数→10進数
2を2進数の桁が1になっている所の桁-1したものを指数として累乗し、桁ごとに累乗したものの合計を求める。
16進数の計算
次に16進数について勉強をする。16進数では1~9に加え、10~15をA、B、C、D、E、Fという数で置き換えて計算を行う。16進数は大きい数を少ない文字で表現できるためRGBの指定やネットワークアドレスの表現に使われることが多い。
9の次の数はAになるよ。あと、Fの次が10になる。間違えないように覚えよう!
①10進数→16進数
10進数→16進数の計算は2進数と同じように、数をその商がゼロになるまで16で割り、その時の余りを下から順に並べることによって求めることができる。余りが10を超える場合はA~Fに置き換えて並べる。
②16進数→10進数の計算
16進数→10進数の計算も2進数と同じように、16を16進数の桁が0以外にになっている所の桁-1したものを指数として累乗し、桁ごとに累乗したものの合計を求めることで計算できる。
2進数と16進数の変換
2進数と16進数の直接の変換は特別な工程がある。この変換がスムーズにできると試験などでも役立つだろう
2進数→16進数の計算
2進数を16進数に直接変換するときは、2進数の数を4桁ごとに分けて考える。4桁ごとに2進数→10進数の計算を行い、左から順番に並べることで計算ができる。この時、10以上はA~Fに置き換えを行ってから並べる必要がある。
逆の16進数→2進数の計算は一度10進数に直してから計算するためここでの説明は省く。
探Q
先生、なんでわざわざ文字を使ってまで16進数を使うんですか?
じゃあ少し勉強しようか。
なぜ16進数を使うのか
コンピュータが2進数を使い、人間が10進数を使うのになぜどちらも使わない16進数をカラーコードや文字コードに用いるのだろうか?
この理由は単純で16進数が人間にもコンピュータにも分かりやすい命数法であるからだ。例えば、カラーコードで(255,255,255)と指定したいときにコンピュータに2進数で設定する必要があると、コンピュータには(11111111,11111111,11111111)と入力する必要があり、非常に分かりにくいと感じるだろう。もし、もっと大きな数を扱う必要があれば(111010001010011001100110101001111001001100010001)のような長い数列を入力しなければならず、プログラミングなどをするときにも非常に不便になるだろう。しかし、ここで16進数をつかうとカラーコードを(FF,FF,FF)、上の数列を(E8A666A79311)と表せる。これから、先ほどのように数を2進数のままで扱うより、16進数にした方が扱いやすいということが分かるだろう。また、16は2の4乗であり、そのため2進数と16進数の変換が容易である。このような理由から16進数はコンピュータで使われるのである。
- ①2進数は2で繰り上がる数え方のことであり、1と0の二つの数字だけを使うため、1の次は10となる。
- ②2進数と10進数の変換は変換したい数を2で割り続けた際の余りを並べることによってできる。
- ③16進数は16で繰り上がる数え方のことであり、Fの次は10となる。
- ③2進数は4桁ごとに変換を行って16進数に変換できる