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

C#で10進数を2進数に変換する方法をわかりやすく解説

はじめに

C#のプログラミングにおいて、10進数を2進数に変換する処理は、アルゴリズムの基礎を学ぶうえで非常に重要なテーマです。本記事では、除算演算子(/)と剰余演算子(%)を使った基本的な変換方法を、サンプルコードとともに詳しく解説します。

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

例として、10進数の「48」を2進数に変換してみましょう。

変換の基本手順は以下のとおりです。

  1. 対象の数値を2で割る
  2. その際の剰余(% 演算の結果)を記録する
  3. 商(/ 演算の結果)が1以上である限り、同じ処理を繰り返す

これをコードで表現すると、次のようになります。

decVal = 48;

while (decVal >= 1) {
    val = decVal / 2;
    a += (decVal % 2).ToString();
    decVal = val;
}

このループでは、剰余を順番に文字列へ追加していくため、求めた桁は下位ビットから並びます。そのため、最後に文字列を反転させて正しい順序に整える必要があります。

完全なサンプルコード

以下に、10進数48を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 = 48;
            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();
        }
    }
}

実行結果

Decimal = 48
Binary = 110000

このように、10進数の「48」は2進数では「110000」になります。

Convert.ToStringメソッドを使う方法

.NET標準ライブラリを利用すれば、上記のようなループ処理を自分で書く必要はありません。Convert.ToStringメソッドを使うと、1行で簡単に変換できます。

int decVal = 48;
string binary = Convert.ToString(decVal, 2);
Console.WriteLine(binary); // 出力: 110000

第2引数に基数「2」を指定することで、2進数形式の文字列が取得できます。同様に「8」や「16」を指定すれば、8進数・16進数への変換も可能です。

まとめ

  • 除算(/)と剰余(%)を組み合わせたループ処理で、10進数を2進数に変換できる
  • 計算した剰余は下位ビットから順に得られるため、最後に文字列を反転させる必要がある
  • 実務ではConvert.ToString(数値, 2)を使えば簡潔に変換可能

アルゴリズムの学習としては自作ロジックの理解が重要ですが、実際の開発では標準ライブラリを活用するのが効率的です。用途に応じて使い分けましょう。

  1. JavaScriptで画像をBlobに変換する方法【サンプルコード&解説つき】

    JavaScriptで画像をBlobに変換するには?Webアプリケーション開発では、画像などのファイルデータを「Blob(Binary Large Object:バイナリラージオブジェクト)」として扱いたい場面が多くあります。たとえば、画像のアップロード処理やCanvasへの描画、サーバーへのデータ送信などがその代表例です。JavaScriptでは、fetch()メソッドとBlobオブジェクトを組み合わせることで、URLから取得した画像を簡単にBlobへ変換できます。以下に実際のサンプルコードを示します。サンプルコード<!DOCTYPE html> <html lang=&q

  2. Windows 10の「電卓」アプリを使って10進数を2進数に変換する方法

    Windows 10には標準搭載されている「電卓」アプリを使えば、10進数から2進数への変換を簡単に行うことができます。電卓はUWPアプリとして提供されており、起動するにはスタートメニューの検索バーに「calc」と入力してEnterキーを押すだけです。日々の作業の中で、10進数を2進数に変換したい、あるいは逆に2進数を10進数に戻したいという場面は意外と多くあります。そんなときに活躍するのが、Windows電卓の「プログラマー」モードです。Windows 10の電卓で10進数を2進数に変換する手順Windowsの電卓はいくつかのモードで動作でき、そのうちのひとつが「プログラマー」モードです。1