10進数を2進数に変換するC++プログラムの作り方【サンプルコード付き】
コンピュータシステムでは、2進数は2進法(基数2)で、10進数は10進法(基数10)で表現されます。本記事では、C++を使って10進数を2進数に変換する方法を、サンプルコードと実行結果を交えてわかりやすく解説します。
10進数とそれに対応する2進数の例は、以下の表の通りです。
| 10進数 | 2進数 |
|---|---|
| 15 | 01111 |
| 10 | 01010 |
| 18 | 10010 |
| 27 | 11011 |
10進数を2進数に変換するC++プログラム
10進数を2進数に変換するプログラムは、以下の通りです。
サンプルコード
#include <iostream>
using namespace std;
void DecimalToBinary(int n) {
int binaryNumber[100], num=n;
int i = 0;
while (n > 0) {
binaryNumber[i] = n % 2;
n = n / 2;
i++;
}
cout<<"Binary form of "<<num<<" is ";
for (int j = i - 1; j >= 0; j--)
cout << binaryNumber[j];
cout<<endl;
}
int main() {
DecimalToBinary(15);
DecimalToBinary(10);
DecimalToBinary(18);
DecimalToBinary(27);
return 0;
}
実行結果
Binary form of 15 is 1111 Binary form of 10 is 1010 Binary form of 18 is 10010 Binary form of 27 is 11011
プログラムの仕組み
上記のプログラムでは、DecimalToBinary関数が10進数nの2進数表現を計算し、その結果を配列binaryNumber[]に格納しています。whileループを使用し、ループの各反復ごとに「nを2で割った余り(n % 2)」の結果がbinaryNumber[]に保存されていきます。
該当するコードは以下の通りです。
while (n > 0) {
binaryNumber[i] = n % 2;
n = n / 2;
i++;
}
これは「2で割った余りを順に記録する」という、10進数から2進数への変換で一般的に使われる手法です。nを2で割った余りは必ず0か1になるため、nが0になるまで割り算を繰り返すことで、各桁の2進数の値が求まります。
その後、forループを使って2進数を表示します。余りは下位の桁から順に求められているため、表示の際は配列を逆順(後ろから前へ)にたどる点に注意してください。
cout<<"Binary form of "<<num<<" is "; for (int j = i - 1; j >= 0; j--) cout << binaryNumber[j];
main()関数には、さまざまな10進数を引数としてDecimalToBinary()を呼び出す処理だけが含まれています。
該当するコードは以下の通りです。
DecimalToBinary(15); DecimalToBinary(10); DecimalToBinary(18); DecimalToBinary(27);
このように、剰余演算(%)と整数除算(/)を組み合わせるだけで、特別なライブラリに頼らずに10進数から2進数への変換を実現できます。なお、ビット演算子(& や >>)を利用する方法や、std::bitsetを使う方法など、別のアプローチもあります。用途に応じて使い分けてみてください。
-
Pythonで10進数を2進数に変換する方法|再帰処理とbin()関数の実装例
この記事では、「10進数を2進数に変換する」という問題に対する解決策を、具体的なコード例とともにわかりやすく解説します。 問題の概要 問題: 与えられた10進数の整数を、それに対応する2進数表現へ変換する。 この問題を解くには、大きく分けて2つのアプローチがあります。順番に見ていきましょう。 方法1:再帰を使った実装 10進数を2進数に変換する基本的な考え方は、「数値を2で割り続け、その余りを記録する」ことです。再帰関数を使うと、除算を繰り返しながら余りを自動的に上位の桁から順に出力できます。 サンプルコード def DecimalToBinary(num): if num &g
-
Pythonで10進数を2進数に変換する方法|再帰と組み込み関数の2つのアプローチ
この記事では、10進数で表された数値を2進数に変換するPythonプログラムについて、その考え方と具体的な実装方法をわかりやすく解説します。 問題文 ある整数が与えられたとき、その数値を2進数に変換します。例えば、10進数の「35」は2進数では「100011」と表現されます。 アプローチ1:再帰を使った解法 再帰処理を利用すると、シンプルなコードで10進数を2進数に変換できます。基本的な流れは以下の擬似コードのとおりです。 DecToBin(num): if num > 1: &n