1. トップ
  2. 大人が意外とわからない「2進法で表すと?」→10進法から変換できる?

大人が意外とわからない「2進法で表すと?」→10進法から変換できる?

  • 2024.1.29
undefined

通常、数を表す際は、0〜9までの10個の数字を組み合わせて表現をします。0、1、2、3・・・、8、9と数え、次の数は位が上がり「10」となりますね。

このように、10ずつで位を1つあげる記数法を「10進法」と言います。

しかし、コンピュータやプログラミングの世界では「2進法」が使われているということを聞いたことないでしょうか。

今回は「2進法」がどのような数なのかを考えてみましょう。

問題

10進法の25は、2進法で表すといくつですか?

2進法というのは、「0と1」のみを用いて、2ずつで位を1つ上げる記数法です。

これはどういうことなのでしょうか。

 

さて、今回の問題の答えは「11001」です。

解説

まずは2進法を順に数えてみましょう。

0、1というのは通常の10進法と同じです。

1の次の数は、位が上がるので10となります。10の次は11です。さらに次の数は、いちばん右の位を1つ大きくします。すると、位が1つ上がりますが、上の位も1なのでさらに繰り上がり、100となります。

10進法と2進法を対応させると次のようになります。

10進法 2進法
1 1
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001
10 1010

では、今回の問題「10進法の25」は、どのように2進法に変換すればよいのでしょうか。

それは「2でわり算を繰り返し、その余りを順に並べる」と、2進法に変換することが可能です。

では、実際にやってみましょう。2進法に変換したので2のわり算をします。

25÷2=12あまり1

ここで出てきた「あまり1」は2進法で表した際の最下位(いちばん右側)の数です。

次は12を2で割りましょう。

12÷2=6あまり0

割り切れるので「あまり0」です。これは右から2つめの位が0ということです。

あとは、これを繰り返すだけです。

6÷2=3あまり0
3÷2=1あまり1

商が1になったので、これ以上割ることができません。

通常、上記のわり算は、下図のように書きます。こうすると、あまりが分かりやすいですね。

undefined

このとき、2進法で表した数は、最上位(いちばん左側)の数は、商の1を持ってきて、順にあまりを並べます。

したがって、「11001」が答えとなります。

この操作によって2進法に変換ができました。これは「2のかたまり」と「かたまりにならないバラ」がいくつあるのかを計算しています。

 

「なぜこの操作で2進法になっているか、よく分からない」という方は、「10進法を10進法に変換する」という計算をやってみるとイメージができるかもしれません。(10進法を10進法に変換するという操作自体には意味がありません)

例えば、「3092」という10進法で表された数に「10進法に変換する」という操作をしてみましょう。

10進法に変換するので、10のわり算を繰り返し、あまりを確認します。

3092÷10=309あまり2

10で割るという計算をしたことによって「10のかたまり」を作り、「かたまりにならないバラ」が2つあるということが分かります。これが最下位(いちばん右側)の数です。

あとは、同じように繰り返していきましょう。

undefined

この計算自体には意味はありませんが、「2進法への変換」と見比べながら考えると、それぞれの計算の意味が掴めるのではないでしょうか。

まとめ

2進法というのは、日常生活ではあまり使用しませんが、プログラミング関連のお仕事をしている方にとっては当たり前のようなものではないでしょうか。

2進法だけでなく、3進法、4進法・・・といったものも同様に考えることができますね。

ちなみにプログラミングの世界では「16進法」を用いることもあります。気になる方はぜひ調べてみてください!

 

※解き方は複数ある場合がございます


文・編集(監修):SAJIMA

日本国内外の学校、学習塾で数学・理科の講師として幼児から高校生までを指導。現在はフリーランスとして独立し、オンラインを中心に授業を展開している。子供への学習指導だけでなく、大人向けの数学講座も開講し、算数・数学の楽しさを広く伝える活動を行っている。日本数学検定協会認定「数学インストラクター」