2進数で書かれた数値は長くて判別しにくいので、16進数を使うことがあります。2進数と16進数との換算はとても簡単なので2進数の略記と考えてもよいでしょう。
2進数 | 16進数 | |
---|---|---|
100010100011 | → | 8A3 |
2進数を4桁ずつ区切って、16進の16個のなかから対応する数字に置き換えるだけです。
2進数 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 1 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
16進数 | 8 | A | 3 |
16個の数字は 0~9 までは十進の数字をそのまま使い、足りない6つをアルファベットから借りてきます。
0 1 2 3 4 5 6 7 8 9 A B C D E F
または小文字で
0 1 2 3 4 5 6 7 8 9 a b c d e f
2進数と16進数の対応は次のようになっています。
2進数 | 16進数 | 10進数 |
---|---|---|
0000 | 0 | 0 |
0001 | 1 | 1 |
0010 | 2 | 2 |
0011 | 3 | 3 |
0100 | 4 | 4 |
0101 | 5 | 5 |
0110 | 6 | 6 |
0111 | 7 | 7 |
1000 | 8 | 8 |
1001 | 9 | 9 |
1010 | A | 10 |
1011 | B | 11 |
1100 | C | 12 |
1101 | D | 13 |
1110 | E | 14 |
1111 | F | 15 |
8までを覚えてしまえば、その上は 9=8+1(1000+1) 10=8+2(1000+10) 11=8+3(1000+11)... と考えればすぐに出せます。F が 1111 というのは覚えてしまいましょう。
ただBCDあたりは苦しいかもしれません。
でも E はぜひ F-1(1111-1) で覚えてください。
16進数であるとはっきり区別する必要があるときには次の様にできます。
2426 → 2426(16)
C言語の表記法に習って頭に0xを付ける方が一般的です。
2426 → 0x2426
2進数の桁数が 4の倍数でないときは前に 0 を補います。
(例)10100100010110
2進数 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
16進数 | 2 | 9 | 1 | 6 |
次の2進数を16進数に直してみます
(A) 1000000101001101 (B) 1110101100111100 (c) 1111001010111
次の16進数を2進数に直してみます
(D) 24 (E) a7 (F) 5e
文字を番号で指定する文字コードは16進数で表します。1バイト(普通8ビットのこと)で表す数値を10進数にすると3桁の場合がでますが、16進数なら2桁で済むからです。
IPv6と呼ばれる次世代IPアドレスは、16進数で表すことになっています。今までのIPv4は10進数でした。
日本語の数の数え方は4桁ずつ区切って、兆、億、万を使いますから、10000進数と考えることもできますし、3桁ずつコンマで区切って書く書き方は1000進数を使っていると考えることもできます。
聖愛中学高等学校