C#で10進数を2進数に変換するプログラムの書き方
C#では、剰余演算(%)と除算(/)を組み合わせたシンプルなアルゴリズムを使うことで、10進数を2進数に変換できます。この記事では、whileループを利用した変換方法を、具体的なサンプルコードとともにわかりやすく解説します。
変換の基本手順
まず、変換したい10進数の値を設定します。
decVal = 34;
Console.WriteLine("Decimal: {0}", decVal);
次に、whileループの中で「2で割った商」と「2で割った余り」を求めます。この余り(0または1)が、2進数の各桁に対応します。
while (decVal >= 1) {
val = decVal / 2;
a += (decVal % 2).ToString();
decVal = val;
}
このループでは、以下の処理が繰り返されます。
- decVal / 2 … 2で割った商を
valに格納します - decVal % 2 … 2で割った余りを文字列
aの末尾に追加します - decVal = val … 商を新しい値として設定し、1未満になるまで繰り返します
注意点として、この方法では余りが下位の桁から順に記録されるため、最後に文字列を逆順に並べ替える必要があります。
完全なサンプルコード
以下のコードを実行すると、C#で10進数を2進数に変換できます。
using System;
using System.Collections.Generic;
using System.Text;
namespace Demo {
class MyApplication {
static void Main(string[] args) {
int decVal;
int val;
string a = "";
decVal = 34;
Console.WriteLine("Decimal: {0}", decVal);
while (decVal >= 1) {
val = decVal / 2;
a += (decVal % 2).ToString();
decVal = val;
}
string binValue = "";
for (int i = a.Length - 1; i >= 0; i--) {
binValue = binValue + a[i];
}
Console.WriteLine("Binary: {0}", binValue);
Console.Read();
}
}
}
もっと簡単な方法:Convert.ToStringメソッド
実は、C#には標準ライブラリとして便利なメソッドが用意されています。Convert.ToString メソッドを使えば、1行で10進数を2進数に変換できます。
int decVal = 34;
string binValue = Convert.ToString(decVal, 2);
Console.WriteLine("Binary: {0}", binValue); // 出力: 100010
第2引数に基数「2」を指定することで、2進数形式の文字列がそのまま取得できます。学習目的でアルゴリズムを理解したい場合は前者の方法、実務で手軽に変換したい場合は後者の方法がおすすめです。
実行結果
Decimal: 34 Binary: 100010
10進数の「34」が、2進数の「100010」に正しく変換されました。ぜひご自身の環境でも試してみてください。
-
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