これから手作業で10進数を2進数に変換する練習をしよう。
10進数を2進数に変換する
10進数を2進数に変換したり、 2進数を16進数に変換したりすることを基数変換と呼ぶ。
基数(きすう)とは、基準の数という意味である。
10進数の基数は10で、 2進数の基数は2である。 これから、本ブログでも、何回かに分けて10進数、2進数 16進数、8進数、 それぞれの基数変換の手順を示していくことにする。
ここで示す手順をスラスラできるようになるまで、 何度も繰り返し練習してみよう。
まず、10進数を2進数に変換する手順である。これは、2で割った余りを求めることを、商が0になるまで繰り返す 。 これによって、 変換後の2進数が、下位桁から順に得られる。
例を示してみよう。 下図は、 123という10進数を2進数に変換する手順である。 1111011という2進数に変換できた。 1111011は7ビットなので、もしもデータの入れ物が8ビットなら、 上位桁を0で埋めて01111011にする。
割り算の回数 | 商 ÷ 2 | 余り(ビット) | 説明 |
---|---|---|---|
1 | 123 ÷ 2 = 61 | 1 | 2で割った余り(最下位ビット) |
2 | 61 ÷ 2 = 30 | 1 | |
3 | 30 ÷ 2 = 15 | 0 | |
4 | 15 ÷ 2 = 7 | 1 | |
5 | 7 ÷ 2 = 3 | 1 | |
6 | 3 ÷ 2 = 1 | 1 | |
7 | 1 ÷ 2 = 0 | 1 | (商が0になったので終了) |
余りを下から上へ並べる
並び順 | 余り | 位置 |
---|---|---|
上位 → 下位 | 1111011 | 7ビット |
ビット数を8ビットにそろえる場合
ビット数 | 2進数表現 |
---|---|
7ビット | 1111011 |
8ビット(0埋め) | 01111011 |
10進数を2進数に変換する仕組み
2で割った余りを求めることを、 商が0になるまで繰り返すことで、10進数 を2進数に変換できる仕組みを説明しよう。 難しそうに思える2進数の仕組みは、我々人間が慣れ親しんだ10進数の仕組みに当てはめて考えてみると、とてもわかりやすくなる。
例えば、 123という10進数を2で割った余りを求めるのではなく、 10で割った余りを求めると、 どうなるだろう。 下図に示すように、 123の下位桁から順に3、 2、 1が得られる。 10進数は、10で桁上がりする数なので、 10で割った余りを求めれば、最下位桁の数字が得られる。 これを繰り 返せば、下位桁から順に1桁ずつ数字が得られる。 同様の仕組みで、2で割った余りを求めることを繰り返せば、2進数の下位桁から順に1桁ずつ数字が得られるのである。
123(10進数)を10で割った余りを求める手順
割り算の回数 | 商 ÷ 10 | 余り | 説明 |
---|---|---|---|
1 | 123 ÷ 10 = 12 | 3 | 1の位の数字 |
2 | 12 ÷ 10 = 1 | 2 | 10の位の数字 |
3 | 1 ÷ 10 = 0 | 1 | 100の位の数字(商が0になったので終了) |
余りを下から上へ並べる
並び順 | 余り | 桁 |
---|---|---|
上位 → 下位 | 1 2 3 | 百の位 → 十の位 → 一の位 |
(参考)情報処理教科書 出るとこだけ!基本情報技術者[科目A][科目B]2025年版
コメント