進数についてわかってない人が多いようなので、簡単に書こうと思います。
数学が苦手な人にもわかるように書いたつもりです。
進数を勉強するには、普段利用している10進数を理解する必要があると思います。
10進数は0から始まって9までを1桁として考えます。
9+1は10となって、2桁目になります。
小学生の時、数字というものについて以下のように習ったと思います。
123という数字は、
1 × 100 + 2 × 10 + 3 = 123
4567という数字は、
4 × 1000 + 5 × 100 + 6 × 10 + 7 = 4567
これらの数式は、高校で数学を勉強した人なら以下のようになることがわかると思います。
1 × 10
2 + 2 × 10
1 + 3 × 10
0 = 123
4 × 10
3 + 5 × 10
2 + 6 × 10
1 + 7 × 10
0 = 4567
(注:10
0は1である。)
これが10進数です。
次は2進数について考えます。
2進数は0から始まって1までを1桁として考えます。
1+1は10となって、2桁目になります。
いくつか例を挙げておきます。
2進数 |
10進数 |
0 |
0 |
1 |
1 |
10 |
2 |
11 |
3 |
100 |
4 |
101 |
5 |
1010 |
10 |
1100100 |
100 |
初めて見た人はあまり意味がわからないと思います。
2進数は次のような数式で表すことが出来ます。
例えば、1010(2)は、
1 × 2
3 + 0 × 2
2 + 1 × 2
1 + 0 × 2
0 = 1010(2) = 100
(注:x進数の場合は数字の後ろに(x)をつけます。ついていない場合は10進数です。)
このことがわかっていれば簡単に10進数を2進数に、または2進数を10進数に変換することが出来ます。
2
xを計算しておきましょう。
20 |
1 |
21 |
2 |
22 |
4 |
23 |
8 |
24 |
16 |
25 |
32 |
26 |
64 |
27 |
128 |
これを利用して変換します。
まずは10進数を2進数に変換します。
19を2進数に変換してみます。
19 = 16 + 2 + 1 = 1 × 2
4 + 0 × 2
3 + 0 × 2
2 + 1 × 2
1 + 1 × 2
0 = 10011
見やすくするために表にしてみましょう。
では、逆に2進数を10進数に変換します。
11001を10進数に変換してみます。
11001 = 1 × 2
4 + 1 × 2
3 + 0 × 2
2 + 0 × 2
1 + 1 × 2
0 = 25
また表にしてみましょう。
次に16進数を考えて見ます。
16進数での10や11等は次のように表します。
10 |
11 |
12 |
13 |
14 |
15 |
a |
b |
c |
d |
e |
f |
16
xを表にします。
160 |
1 |
161 |
16 |
162 |
256 |
163 |
4096 |
164 |
65536 |
4649を16進数に変換してみましょう。
4649 = 1 × 163 + 2 × 162 + 2 × 161 + 9 × 160 = 1229(16)
こうなります。
例が悪かったのでもう1問やってみます。
4000 = 15 × 162 + 10 × 161 + 0 × 160 = fa0(16)
同様のやり方で何進数でも解くことが出来ます。
最後に実際に普段使っている進数を紹介したいと思います。
時間は60進数を使っています。
60分で1時間になります。
つまり2時間30分は、
2 × 601 + 30 × 600 = 210分
となります。
では、2時間30分30秒は何秒でしょうか?
2 × 602 + 30 × 601 + 30 * 600 = 9030秒
となります。
進数について長々と書きましたが、わかりづらくなってしまった気がします。
そのうち書き直して新規で投稿するかもしれません。
感想をコメントしてくれたら嬉しいです。
PR