【ITニュース解説】How to Convert Between Decimal and Binary Numbers – Beginner’s Guide
2025年09月17日に「Dev.to」が公開したITニュース「How to Convert Between Decimal and Binary Numbers – Beginner’s Guide」について初心者にもわかりやすく解説しています。
ITニュース概要
コンピュータは2進数を、人間は10進数を使うため、その相互変換はITの基礎知識だ。10進数から2進数へは2で割り余りを読む方法、2進数から10進数へは各桁に2のべき乗を掛けて合計する方法で変換できる。
ITニュース解説
コンピュータの世界では、情報がどのように扱われているかを知ることは、システムエンジニアを目指す上で非常に重要な基礎知識だ。私たちは普段、0から9までの数字を使った「十進数」という数の体系で生活しているが、コンピュータはこれとは異なり、「二進数」という、たった二つの数字、0と1だけで全ての情報を表現している。なぜコンピュータが二進数を使うのかというと、コンピュータの内部では電気信号のオン(電流が流れている状態)とオフ(電流が流れていない状態)で情報を処理しており、このオンとオフをそれぞれ1と0に対応させるのが最も効率的だからだ。そのため、人間が理解できる十進数と、コンピュータが理解できる二進数の間で数を変換するスキルは、コンピュータサイエンスの根幹をなすものと言える。
まず、私たちが使い慣れた十進数から、コンピュータが理解できる二進数へ変換する方法を見ていこう。この変換には「2で割り続ける」というシンプルな方法を用いる。手順は次のとおりだ。まず、変換したい十進数を準備する。次に、その数を2で割り、その割り算で出た「余り」を記録しておく。余りは必ず0か1のどちらかになる。そして、先ほどの割り算で出た「商」を、また2で割る。この「2で割って余りを記録し、商をさらに2で割る」という作業を、商が0になるまで繰り返し行う。全ての割り算が終わったら、記録しておいた余りを、一番下(最後に記録した余り)から一番上(最初に記録した余り)へと順に読み上げていく。そうすると、それが目的の二進数となる。
具体的な例で見てみよう。例えば、十進数の「24」を二進数に変換する場合だ。最初のステップとして、24を2で割る。すると、商は12、余りは0となる。この余り0を記録しておく。次に、商の12を2で割る。商は6、余りは0となる。この余り0も記録する。さらに、商の6を2で割る。商は3、余りは0となる。余り0を記録する。次に、商の3を2で割る。商は1、余りは1となる。余り1を記録する。最後に、商の1を2で割る。商は0、余りは1となる。余り1を記録する。これで商が0になったので、割り算は終了だ。記録した余りは下から順に「1」「1」「0」「0」「0」となる。これを下から上に読み上げると「11000」となる。つまり、十進数の24は、二進数では11000と表現されるのだ。この方法で、どんな大きな十進数でも二進数に変換できる。
次に、コンピュータが扱う二進数から、人間が理解できる十進数へ変換する方法を解説する。この変換では「2のべき乗(るいじょう)」という考え方を使う。十進数で「123」という数字があるとき、これは100が1つ、10が2つ、1が3つという意味で、それぞれ1×10² + 2×10¹ + 3×10⁰ と計算できる。二進数も同様に、桁ごとに重みが割り当てられており、その重みは10のべき乗ではなく2のべき乗となる。変換の手順は以下の通りだ。まず、変換したい二進数を準備する。その二進数の各桁の数字の下に、右端の桁から順に「2の0乗 (2⁰)」から始めて「2の1乗 (2¹)」「2の2乗 (2²)」…と、2のべき乗を書き並べていく。次に、各桁の数字(0か1)と、その桁の下に書かれた2のべき乗の値を掛け合わせる。最後に、これらの掛け算の結果を全て足し合わせる。この合計値が、目的の十進数となる。
再び、具体的な例として、二進数の「11000」を十進数に変換する場合を考えてみよう。二進数の11000を、右端から順に各桁に注目する。一番右の桁は0で、その桁の重みは2の0乗 (2⁰ = 1) だ。右から二番目の桁も0で、その桁の重みは2の1乗 (2¹ = 2) だ。右から三番目の桁も0で、その桁の重みは2の2乗 (2² = 4) だ。右から四番目の桁は1で、その桁の重みは2の3乗 (2³ = 8) だ。一番左の桁は1で、その桁の重みは2の4乗 (2⁴ = 16) だ。次に、各桁の数字と対応する2のべき乗を掛け合わせる。一番左の1に2⁴ (16) を掛けて、1 × 16 = 16。その隣の1に2³ (8) を掛けて、1 × 8 = 8。その隣の0に2² (4) を掛けて、0 × 4 = 0。その隣の0に2¹ (2) を掛けて、0 × 2 = 0。一番右の0に2⁰ (1) を掛けて、0 × 1 = 0。最後に、これらの計算結果を全て足し合わせる。16 + 8 + 0 + 0 + 0 = 24。このようにして、二進数の11000が十進数の24に変換された。
これらの変換方法は、コンピュータがどのように情報を処理しているかを理解するための最初のステップであり、プログラミングやデータ構造など、より高度なコンピュータサイエンスの概念を学ぶ上での揺るぎない基礎となる。最初は少し複雑に感じるかもしれないが、何度か練習問題を解いていくうちに、きっと簡単にマスターできるようになるだろう。コンピュータの言葉を理解できるようになることは、システムエンジニアを目指す上で非常に大きな強みとなる。