(1-1)2進数と16進数
普段、私たちが使っている数の表現方法は0~9までの10個数字を用いる10進数と呼ばれる数値の表現方法です。
これについては解説するまでもありませんが、規則を確認しておきたいと思います。
まず0から順にカウントアップしていきますと0、1、2、・・・8、9となり、次は1桁繰り上がって10となります。
当たり前ですよね。
現在のコンピュータは電気信号の2つの状態(電圧が低い~ローレベル(L)~、電圧が高い~ハイレベル(H)~)しか認識できません。
そのためこの2つの状態をそれぞれ数値の0と1に対応させて数を表現しています。
0と1の2個の数字しか認識できませんので2進数を用いることになります。
まず0、次は1、その次は?・・・桁が1つ上がって10になります。この場合「じゅう」とは読みません。「イチゼロ」と読みます。
2進数であることを表すため数値の後に「B」(Binary)を付けて「10B」と表したりします。
で、2進数で数値を表しますと、大きな数値になってきますと桁がすごく多くなってしまって分かりにくくなります。
そこで2進数の代わりに16進数というものが用いられています。
16進数は0~9までの10個の数字と他にA~Fまでの6個のアルファベットが用いられて合計16個の数を表します。
0、1、2、・・・8、9、A、B、C、D、E、Fまできたら次は桁が上がって10になります。
では、確認です。以下の3つの数値表現はお分かり頂けますか?
10進数 | 2進数 | 16進数 |
---|---|---|
2 | 10B | 2H |
10 | 1010B | AH |
20 | 10100B | 14H |
これらについてご理解頂ければ最低限は大丈夫ではないかと思います。
私は昔、手計算で数値変換をやっていたことがありますが、 今はWindows付属の「電卓」でも数値変換が簡単にできますので無理して覚えなくても何とかなります!
なお、C言語で16進数を表す場合には数値の前に0xを付けて、
0x1234
0xff1a
0xab89
などと記述します。
そうそう、C言語では基本的に小文字を使って記述します。