C#で再帰を使って10進数を2進数に変換する方法
10進数の値を2進数に変換するには、再帰(リカーシブ)処理を利用すると簡潔に実装できます。まずは、変換対象となる10進数の値を設定しましょう。
int dec = 30;
次に、この値を変換用のメソッドに渡します。
public int displayBinary(int dec) {
}ここからが再帰処理の核心部分です。10進数の値が0になるまで条件判定を繰り返し、その都度「10進数を2で割った余り(mod 2)」を計算します。再帰呼び出しの際には、dec / 2 の値を引数として同じメソッドを再度呼び出すことで、桁を一つずつ処理していきます。
public int displayBinary(int dec) {
int res;
if (dec != 0) {
res = (dec % 2) + 10 * displayBinary(dec / 2);
Console.Write(res);
return 0;
} else {
return 0;
}
}この仕組みのポイントは、再帰呼び出しが最も深い段階(商が0になった時点)から戻りながら結果を組み立てていく点です。これにより、2進数の下位の桁から順に求めた値が、正しい桁順で画面に出力されます。
完全なサンプルコード
以下に、上記のロジックを含む完全なプログラムを示します。
using System;
public class Program {
public static void Main(string[] args) {
int dec;
Demo d = new Demo();
dec = 30;
Console.Write("Decimal = " + dec);
Console.Write("\nBinary of {0} = ", dec);
d.displayBinary(dec);
Console.ReadLine();
Console.Write("\n");
}
}
public class Demo {
public int displayBinary(int dec) {
int res;
if (dec != 0) {
res = (dec % 2) + 10 * displayBinary(dec / 2);
Console.Write(res);
return 0;
} else {
return 0;
}
}
}実行結果
Decimal = 30 Binary of 30 = 11110
このように、30という10進数が「11110」という2進数に正しく変換されました。再帰を使った手法は、ループ処理を書くよりもコードがシンプルになり、数値の桁ごとの変換処理を直感的に表現できるのが魅力です。
-
Pythonで10進数を2進数に変換する方法|再帰処理とbin()関数の実装例
この記事では、「10進数を2進数に変換する」という問題に対する解決策を、具体的なコード例とともにわかりやすく解説します。 問題の概要 問題: 与えられた10進数の整数を、それに対応する2進数表現へ変換する。 この問題を解くには、大きく分けて2つのアプローチがあります。順番に見ていきましょう。 方法1:再帰を使った実装 10進数を2進数に変換する基本的な考え方は、「数値を2で割り続け、その余りを記録する」ことです。再帰関数を使うと、除算を繰り返しながら余りを自動的に上位の桁から順に出力できます。 サンプルコード def DecimalToBinary(num): if num &g
-
Windows 10の「電卓」アプリを使って10進数を2進数に変換する方法
Windows 10には標準搭載されている「電卓」アプリを使えば、10進数から2進数への変換を簡単に行うことができます。電卓はUWPアプリとして提供されており、起動するにはスタートメニューの検索バーに「calc」と入力してEnterキーを押すだけです。日々の作業の中で、10進数を2進数に変換したい、あるいは逆に2進数を10進数に戻したいという場面は意外と多くあります。そんなときに活躍するのが、Windows電卓の「プログラマー」モードです。Windows 10の電卓で10進数を2進数に変換する手順Windowsの電卓はいくつかのモードで動作でき、そのうちのひとつが「プログラマー」モードです。1