十進法でも二進法でも数そのものが変わるわけではない。3個のりんごは何進法で数えようとも3個である。十進法と二進法で異なるのは書き方である。だから十進法、二進法と言わずに十進表記、二進表記とか、十進表現、二進表現というのが適当かもしれない。
しかし、3という言葉、特に十以上を言う時の言葉は十進法に深く根ざしている。これに惑わされないように。
まず十進表記は十個の数字しか使わない数の表現方法です。その十個とは、
0 1 2 3 4 5 6 7 8 9
です。十より大きい数字は位取りで表現します。位とは同じ3でも1の位に書いてある時は3で、十の位に書いてある時は三十、百の位に書いてある時は三百の意味ということです。
0から次々に1を足すことを考えます。9まで数えて行けますが、次の十では数字がなくなるので位をあげて十の位に1と書き、1の位を0に戻すわけです。
ごく普通の十進法で書いた数
345
は次の意味になります。
3 × 100 + 4 × 10 + 5
これをもっと十進法ということを意識するために書き換えると
3 × 102 + 4 × 101 + 5 × 100
となります。100は1です。
二進表記は二個の数字しか使わない数の表現方法です。たとえばその二個は、
0 1
です。始めから2進法で文化を創ってきた民族があれば別の記号になっていたかも知れません。ここでは十進法の記号を流用しています。
2より大きい数字は位取りで表現します。同じ1でも書いてある位置で表す数が変わるのは十進法とおなじです。
0から次々に1を足すことを考えます。1まで数えて行けますが、次の2では数字がなくなるので位をあげてひとつ上の位に1と書き、1の位を0に戻すわけです。
十進法では十の位、百の位...ですが、二進法では2の位、4の位...ですね。
二進法で書いた数
111
は次の意味になります。
1 × 4 + 1 × 2 + 1
これをもっと二進法ということを意識するために書き換えると
1 × 22 + 1 × 21 + 1 × 20
となります。20も1です。
二進法で書かれた数値は長くて判別しにくいので、8進法や16進法を使うことがあります。二進法と8進法や16進法との換算はとても楽なので二進法の略記と考えてもよいでしょう。
日本語の数の数え方は、兆、億、万を使った1000進法と考えることもできますし、3桁ずつコンマで区切って書く書き方は1000進法を使っていると考えることもできます。
二進表記を3桁ずつ区切ると8進に、4桁ずつ区切ると16進になります。
8進表記は8個の数字しか使わない数の表現方法なので十進の数字で代用できます
0 1 2 3 4 5 6 7
16進表記は16個の数字を使うので十進の数字では足りません。アルファベットから6文字借りてきます。
0 1 2 3 4 5 6 7 8 9 a b c d e f
アルファベットは大文字を使う場合もあります。
2進表現 | 10進表現 | 8進表現 | 16進表現 |
---|---|---|---|
0000 | 0 | 0 | 0 |
0001 | 1 | 1 | 1 |
0010 | 2 | 2 | 2 |
0011 | 3 | 3 | 3 |
0100 | 4 | 4 | 4 |
0101 | 5 | 5 | 5 |
0110 | 6 | 6 | 6 |
0111 | 7 | 7 | 7 |
1000 | 8 | 10 | 8 |
1001 | 9 | 11 | 9 |
1010 | 10 | 12 | a |
1011 | 11 | 13 | b |
1100 | 12 | 14 | c |
1101 | 13 | 15 | d |
1110 | 14 | 16 | e |
1111 | 15 | 17 | f |
8進表現の場合は7まで、16進表現の場合はfまでの二進パターンを覚えておけば簡単に書き換えができます。
二進表現 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 1 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
8進表現 | 5 | 6 | 2 | 7 |
同じパターンを16進法で書き換えてみます。
二進表現 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 1 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
16進表現 | b | 9 | 7 |
16進表記であることをはっきりさせたい時にはC言語の表記法に習って頭に0xを付けるとが一般的です。
次の二進表現を16進表現に直してみます
(A) 10000001 (B) 00111010 (c) 11011110
次の16進表現を二進表現に直してみます
(D) 24 (E) a7 (F) 5e
次の十進表現を二進表現に直してみます
(G) 7 (H) 63 (I) 75
次の二進表現を十進表現に直してみます
(J) 10110 (K) 11101 (L) 110010聖愛中学高等学校