目次
2進数 16進数 とは
我々が日常生活で使用するのは10進数である。
なぜ10進数なのかというと、手の指が合計10本あるからではないかと言われている。
もし手の指が4本だったなら、8進数が使われていて、読者が2進数に混乱することももっと少なかったかもしれない。
コンピュータ内部では、通常2進数が使用される。何故かというと、10進数よりも2進数の方がコンピュータにとって扱いやすいからである。 なので、気がつかないかもしれないが、入出力の時に10進数←→2進数の変換が陰でこっそり行われているのだ。
コンピュータは 0 または 1 のデータを取り扱う。これを「ビット(bit)」と呼ぶ。
ひとつのビットだけでは、表現できる状態が2つしかない。
これでは状態数が少なすぎなので、通常は8個のビットをひとまとまりとして取り扱う。
これを「バイト(byte)」と呼ぶ。
1バイトで表現可能な範囲は、2進数で書けば 00000000 から 11111111 まで。
10進数で書けば 0 から 255 までとなる。
2進数で表記すると桁が多くなりすぎるので、2進数の4桁をひとまとまりにして、通常は16進数を用いる。
0から9までは通常の数を用い、10~15は 'A', 'B', 'C', 'D', 'E', 'F' を用いる。
小文字('a', 'b', 'c', 'd', 'e', 'f')で表記してもよい。
16進数1桁は4ビットに相当する。
10進数 | 2進数 | 16進数 |
---|---|---|
0 | 0000 | 0 |
1 | 0001 | 1 |
2 | 0010 | 2 |
3 | 0011 | 3 |
4 | 0100 | 4 |
5 | 0101 | 5 |
6 | 0110 | 6 |
7 | 0111 | 7 |
8 | 1000 | 8 |
9 | 1001 | 9 |
10 | 1010 | A |
11 | 1011 | B |
12 | 1100 | C |
13 | 1101 | D |
14 | 1110 | E |
15 | 1111 | F |
Nビットの数値を16進数に変換すると、(Nが4の倍数であれば、)N/4桁の16進数で表記できる。
演習問題
- 10進数の100を、2進数、16進数に変換してみなさい
- 2進数の 01011010 を 10進数、16進数に変換してみなさい
- 32ビットの数値を16進数に変換すると何桁になるか?
- 4桁の16進数を2進数に変換すると何桁になるか?
C/C++ 言語での16進数、2進数
C/C++ 言語による16進数表記
C/C++ 言語による2進数表記
C/C++ 言語による16進数表示
C/C++ 言語による2進数表示
C/C++ 言語による整数・16進数表記変換
C/C++ 言語による整数・2進数表記変換
参考
演習問題解答例