2進数と16進数

2進数とは

デジタル回路はすべてトランジスタで表現できます。トランジスタの出力状態はHかLとなり,
H=”1”,L=”0”と表すと,回路の状態が2進数で表現できます。それによって数学的に表現
できるようになるためデジタル回路は急速に発展を遂げました。
そのため,デジタル信号を扱う上で2進数は非常に重要な数え方です。

私たちが普段から使う10進数にて”0”から”7”までの数字を2進数で記述してみましょう。

0=0b000
1=0b001
2=0b010
3=0b011
4=0b100
5=0b101
6=0b110
7=0b111

ここで”0b”のbはbinary(2進数)のbから来ており,2進数ですよということを宣言するための記号です。
この記号がなければ,たとえば”10”が10進数なのか2進数なのかがわかりません。ですので,
とても重要な記号です。ここで2進数の1桁のことをbitといいます。2進数の最下位bitをLSBといいます。
して最上位bitをMSBといいます。

16進数とは

デジタル信号を扱う上でもう一つの重要な数え方に16進数があります。
16進数は”0”~”F”で数字を数える方法です。では10進数の”0”から”15”までの数字を
16進数で記述してみましょう。

0 =0x0
1 =0x1
2 =0x2
3 =0x3
4 =0x4
5 =0x5
6 =0x6
7 =0x7
8 =0x8
9 =0x9
10=0xA
11=0xB
12=0xC
13=0xD
14=0xE
15=0xF
”0x”のxはhexadecimal(16進数)から来ており,16進数ですということを宣言するための記号です。
重要な記号なのでしっかり覚えておきましょう。

2進数と16進数の変換

10進数で大きめの数字,たとえば255を2進数で記述してみると,”0b11111111”となり,
非常に長くなります。桁数も読み間違えやすくなります。ここで16進数を用いることで,
”0xFF”となり,桁数をぐっと減らせます。
間違いも減らすことができます。これが16進数を用いる理由です。

ではなぜ10進数ではなく16進数なのでしょうか?それは2進数から16進数への変換が
簡単だからです。たとえば,”0b0010110011111000”を16進数に変換してみましょう。
非常に長いので混乱してしまいますが,実は2進数を4bitずつ区切ってそれぞれを
16進数に変換すればいいのです。上記の例では”0b 0010 11001111 1000”=”0x2AF8”と
なります。

次回は,アナログ信号をデジタル信号に変換するA/Dコンバータについて勉強しましょう。

マイコン設計者がお答えします!技術的問い合わせフォーム