C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#で2進数を10進数に変換するプログラムの書き方

C#では、2進数(バイナリ)で表された数値を10進数(デシマル)へ変換することができます。本記事では、whileループと剰余演算を組み合わせた基本的な変換アルゴリズムを、サンプルコード付きでわかりやすく解説します。

2進数から10進数への変換の手順

1. 2進数の値を設定する

まず、変換したい2進数の値を整数型の変数に設定します。ここでは例として「101」を使用します。

int num = 101;

2. 値を別の変数に保存する

元の値を後で表示できるよう、新しい変数に代入して保持しておきます。

binVal = num;

3. ループ処理で各桁を計算する

値が0より大きい間、以下のようにループ処理を繰り返します。各桁の数字を取り出し、対応する2のべき乗を掛けて合計することで、10進数の値を求めます。

while (num > 0) {
    rem = num % 10;
    decVal = decVal + rem * baseVal;
    num = num / 10;
    baseVal = baseVal * 2;
}

サンプルコード

以下は、2進数を10進数に変換するC#プログラムの完全なコード例です。

using System;
using System.Collections.Generic;
using System.Text;
namespace Demo {
    class MyApplication {
        static void Main(string[] args) {
            int num, binVal, decVal = 0, baseVal = 1, rem;
            num = 101;
            binVal = num;
            while (num > 0) {
                rem = num % 10;
                decVal = decVal + rem * baseVal;
                num = num / 10 ;
                baseVal = baseVal * 2;
            }
            Console.Write("Binary Number: "+binVal);
            Console.Write("\nDecimal: "+decVal);
            Console.ReadLine();
        }
    }
}

実行結果

このプログラムを実行すると、以下のような出力が得られます。2進数「101」は、10進数では「5」に相当します。

Binary Number: 101
Decimal: 5

変換ロジックのポイント

このアルゴリズムの仕組みはシンプルです。num % 10で最下位桁の数字(0または1)を取り出し、baseVal(初期値1、つまり2の0乗)を掛けます。その後、num / 10で桁を一つずらし、baseVal * 2で基数を次の2のべき乗に更新します。これを全桁に対して繰り返すことで、正確な10進数の値が得られます。

  1. Pythonで10進数を2進数に変換する方法|再帰処理とbin()関数の実装例

    この記事では、「10進数を2進数に変換する」という問題に対する解決策を、具体的なコード例とともにわかりやすく解説します。 問題の概要 問題: 与えられた10進数の整数を、それに対応する2進数表現へ変換する。 この問題を解くには、大きく分けて2つのアプローチがあります。順番に見ていきましょう。 方法1:再帰を使った実装 10進数を2進数に変換する基本的な考え方は、「数値を2で割り続け、その余りを記録する」ことです。再帰関数を使うと、除算を繰り返しながら余りを自動的に上位の桁から順に出力できます。 サンプルコード def DecimalToBinary(num): if num &g

  2. Pythonで10進数を2進数に変換する方法|再帰と組み込み関数の2つのアプローチ

    この記事では、10進数で表された数値を2進数に変換するPythonプログラムについて、その考え方と具体的な実装方法をわかりやすく解説します。 問題文 ある整数が与えられたとき、その数値を2進数に変換します。例えば、10進数の「35」は2進数では「100011」と表現されます。 アプローチ1:再帰を使った解法 再帰処理を利用すると、シンプルなコードで10進数を2進数に変換できます。基本的な流れは以下の擬似コードのとおりです。 DecToBin(num):     if num > 1:      &n