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

C#で2進数を10進数に変換する方法を解説

C#で2進数を10進数に変換する方法はいくつかありますが、ここではwhileループを使った基本的なアルゴリズムを紹介します。この方法では、入力された2進数の各桁の余り(剰余)を求め、その余りに基数(2のべき乗)を掛けて順次加算していくことで、10進数の値を算出します。

変換の仕組み

2進数「1010」を例に考えてみましょう。各桁を右から順に取り出し、それぞれに1、2、4、8という基数を掛けて合計します。具体的には以下のような流れになります。

  • 最下位の桁(余り)を val % 10 で取得する
  • 余りに現在の基数値を掛けて10進数の結果に加算する
  • val / 10 で処理済みの桁を取り除く
  • 基数値を2倍して次の桁の重みにする

これらの手順をwhileループで実装したコードがこちらです。

while (val > 0) {
   remainder = val % 10;
   myDecimal = myDecimal + remainder * baseVal;
   val = val / 10;
   baseVal = baseVal * 2;
}

C#での完全なサンプルコード

それでは、2進数を10進数に変換するC#の完全なプログラムを見てみましょう。

using System;
using System.Collections.Generic;
using System.Text;

namespace Demo {
   class toBinary {
      static void Main(string[] args) {
         int val = 1010, myBinary, remainder;
         int myDecimal = 0, baseVal = 1;

         myBinary = val;

         while (val > 0) {
            remainder = val % 10;
            myDecimal = myDecimal + remainder * baseVal;
            val = val / 10;
            baseVal = baseVal * 2;
         }

         Console.Write("Binary Number : " + myBinary);
         Console.Write("\nConverted to Decimal: " + myDecimal);
         Console.ReadLine();
      }
   }
}

コードのポイント

  • myBinary:元の2進数の値を表示用に保持しておく変数です。ループ内でvalが書き換えられるため、事前にコピーしています。
  • baseVal:初期値は1で、ループごとに2倍されることで桁の重み(1、2、4、8…)を表現します。
  • remainder:現在注目している桁の数字(0または1)を格納します。

実行結果

上記のプログラムを実行すると、コンソールには以下のように出力されます。

Binary Number : 1010
Converted to Decimal: 10

2進数の「1010」が正しく10進数の「10」に変換されていることが確認できます。この手法はシンプルでありながら、進数変換の基本的な考え方を理解するのに非常に適しています。ぜひ実際にコードを動かして、挙動を確かめてみてください。

  1. Pythonで10進数を2進数・8進数・16進数に変換する方法をわかりやすく解説

    Pythonには、10進数の整数を2進数・8進数・16進数に変換するための組み込み関数が標準で用意されています。それぞれ以下の関数を使用します。2進数: bin() 8進数: oct() 16進数: hex()これらの関数は、引数に整数を渡すだけで、対応する基数の文字列表現を文字列として返してくれます。非常にシンプルで直感的に使えるのが特徴です。基本的な使い方実際に、10進数の「27」をそれぞれの進数に変換してみましょう。decimal = 27 print(bin(decimal), in binary.) print(oct(decimal), in octal.) print(hex(

  2. 【Python入門】再帰関数を使って10進数を2進数に変換する方法

    10進数を2進数に変換する基本の考え方 10進数を2進数に変換するには、対象の数を2で繰り返し割り算をし、そのたびに得られる余りを記録します。そして計算が終わった後、余りを逆順に出力すると、それが目的の2進数表現になります。 この一連の処理は、再帰(リカージョン)を使うことで非常に簡潔に実装できます。以下がその再帰的な解法です。 再帰を使ったPythonコード def tobin(x): if x > 1: tobin(x // 2) print(x % 2, end=) num = int(input(enter a number)) tobin(nu