数値

[C#] 2進数の文字列を8進数、10進数、16進数に変換する方法

C#で2進数の文字列を8進数、10進数、16進数に変換するには、まずConvert.ToInt32メソッドを使用して2進数の文字列を整数に変換します。

次に、その整数を目的の進数に変換します。

例えば、10進数への変換はそのまま整数を使用し、8進数や16進数への変換はConvert.ToStringメソッドを使ってそれぞれ基数8や16で文字列に変換します。

2進数を10進数に変換する方法

2進数を10進数に変換するには、各桁の値を計算し、合計します。

2進数の各桁は、右から左に向かって2の累乗を掛けていきます。

例えば、2進数の 1011 は次のように計算されます。

(

1 \times 2^3 + 0 \times 2^2 + 1 \times 2^1 + 1 \times 2^0 = 8 + 0 + 2 + 1 = 11

)

以下に、C#で2進数の文字列を10進数に変換するサンプルコードを示します。

using System;
class Program
{
    static void Main()
    {
        // 2進数の文字列
        string binaryString = "1011";
        
        // 2進数を10進数に変換
        int decimalValue = Convert.ToInt32(binaryString, 2);
        
        // 結果を表示
        Console.WriteLine($"2進数 {binaryString} は 10進数で {decimalValue} です。");
    }
}
2進数 1011 は 10進数で 11 です。

このコードでは、Convert.ToInt32メソッドを使用して、2進数の文字列を10進数に変換しています。

第2引数に基数(この場合は2)を指定することで、正しく変換が行われます。

2進数を8進数に変換する方法

2進数を8進数に変換するには、まず2進数を3桁ごとに区切り、それぞれのグループを8進数に変換します。

2進数の各桁は、右から左に向かって2の累乗を掛けていくため、3桁の2進数は1桁の8進数に対応します。

例えば、2進数の 101101 は次のように変換されます。

  1. 右から3桁ずつ区切る:10 110 1(不足分は0で埋める)
  2. 010 110 001に変換
  3. 各グループを8進数に変換:
  • 010 → 2
  • 110 → 6
  • 001 → 1

したがって、2進数の 101101 は8進数で 261 となります。

以下に、C#で2進数の文字列を8進数に変換するサンプルコードを示します。

using System;
class Program
{
    static void Main()
    {
        // 2進数の文字列
        string binaryString = "101101";
        
        // 2進数を10進数に変換
        int decimalValue = Convert.ToInt32(binaryString, 2);
        
        // 10進数を8進数に変換
        string octalValue = Convert.ToString(decimalValue, 8);
        
        // 結果を表示
        Console.WriteLine($"2進数 {binaryString} は 8進数で {octalValue} です。");
    }
}
2進数 101101 は 8進数で 261 です。

このコードでは、まず2進数の文字列を10進数に変換し、その後、Convert.ToStringメソッドを使用して10進数を8進数に変換しています。

これにより、簡単に2進数から8進数への変換が実現できます。

2進数を16進数に変換する方法

2進数を16進数に変換するには、まず2進数を4桁ごとに区切り、それぞれのグループを16進数に変換します。

4桁の2進数は1桁の16進数に対応します。

例えば、2進数の 11011011 は次のように変換されます。

  1. 右から4桁ずつ区切る:1101 1011
  2. 各グループを16進数に変換:
  • 1101 → D
  • 1011 → B

したがって、2進数の 11011011 は16進数で DB となります。

以下に、C#で2進数の文字列を16進数に変換するサンプルコードを示します。

using System;
class Program
{
    static void Main()
    {
        // 2進数の文字列
        string binaryString = "11011011";
        
        // 2進数を10進数に変換
        int decimalValue = Convert.ToInt32(binaryString, 2);
        
        // 10進数を16進数に変換
        string hexValue = Convert.ToString(decimalValue, 16).ToUpper();
        
        // 結果を表示
        Console.WriteLine($"2進数 {binaryString} は 16進数で {hexValue} です。");
    }
}
2進数 11011011 は 16進数で DB です。

このコードでは、まず2進数の文字列を10進数に変換し、その後、Convert.ToStringメソッドを使用して10進数を16進数に変換しています。

ToUpperメソッドを使うことで、16進数の文字を大文字にしています。

これにより、2進数から16進数への変換が簡単に行えます。

応用例:他の進数から2進数への変換

進数の変換は、プログラミングにおいて非常に重要なスキルです。

ここでは、10進数、8進数、16進数から2進数に変換する方法をそれぞれ解説します。

10進数から2進数に変換する方法

10進数を2進数に変換するには、10進数を2で割り、その余りを記録します。

割り算を繰り返し、余りを逆順に並べることで2進数が得られます。

以下に、C#で10進数を2進数に変換するサンプルコードを示します。

using System;
class Program
{
    static void Main()
    {
        // 10進数の値
        int decimalValue = 11;
        
        // 10進数を2進数に変換
        string binaryValue = Convert.ToString(decimalValue, 2);
        
        // 結果を表示
        Console.WriteLine($"10進数 {decimalValue} は 2進数で {binaryValue} です。");
    }
}
10進数 11 は 2進数で 1011 です。

8進数から2進数に変換する方法

8進数を2進数に変換するには、まず8進数の各桁を3桁の2進数に変換します。

以下に、C#で8進数を2進数に変換するサンプルコードを示します。

using System;
class Program
{
    static void Main()
    {
        // 8進数の文字列
        string octalString = "26";
        
        // 8進数を10進数に変換
        int decimalValue = Convert.ToInt32(octalString, 8);
        
        // 10進数を2進数に変換
        string binaryValue = Convert.ToString(decimalValue, 2);
        
        // 結果を表示
        Console.WriteLine($"8進数 {octalString} は 2進数で {binaryValue} です。");
    }
}
8進数 26 は 2進数で 101110 です。

16進数から2進数に変換する方法

16進数を2進数に変換するには、16進数の各桁を4桁の2進数に変換します。

以下に、C#で16進数を2進数に変換するサンプルコードを示します。

using System;
class Program
{
    static void Main()
    {
        // 16進数の文字列
        string hexString = "DB";
        
        // 16進数を10進数に変換
        int decimalValue = Convert.ToInt32(hexString, 16);
        
        // 10進数を2進数に変換
        string binaryValue = Convert.ToString(decimalValue, 2);
        
        // 結果を表示
        Console.WriteLine($"16進数 {hexString} は 2進数で {binaryValue} です。");
    }
}
16進数 DB は 2進数で 11011011 です。

これらのサンプルコードを使用することで、10進数、8進数、16進数から2進数への変換が簡単に行えます。

各進数の特性を理解し、適切な方法で変換を行いましょう。

応用例:異なる進数間での変換

異なる進数間での変換は、プログラミングにおいて非常に役立つスキルです。

ここでは、8進数から10進数、16進数から10進数、8進数から16進数への変換方法をそれぞれ解説します。

8進数から10進数に変換する方法

8進数を10進数に変換するには、各桁の値を計算し、合計します。

8進数の各桁は、右から左に向かって8の累乗を掛けていきます。

以下に、C#で8進数を10進数に変換するサンプルコードを示します。

using System;
class Program
{
    static void Main()
    {
        // 8進数の文字列
        string octalString = "26";
        
        // 8進数を10進数に変換
        int decimalValue = Convert.ToInt32(octalString, 8);
        
        // 結果を表示
        Console.WriteLine($"8進数 {octalString} は 10進数で {decimalValue} です。");
    }
}
8進数 26 は 10進数で 22 です。

16進数から10進数に変換する方法

16進数を10進数に変換するには、各桁の値を計算し、合計します。

16進数の各桁は、右から左に向かって16の累乗を掛けていきます。

以下に、C#で16進数を10進数に変換するサンプルコードを示します。

using System;
class Program
{
    static void Main()
    {
        // 16進数の文字列
        string hexString = "DB";
        
        // 16進数を10進数に変換
        int decimalValue = Convert.ToInt32(hexString, 16);
        
        // 結果を表示
        Console.WriteLine($"16進数 {hexString} は 10進数で {decimalValue} です。");
    }
}
16進数 DB は 10進数で 219 です。

8進数から16進数に変換する方法

8進数を16進数に変換するには、まず8進数を10進数に変換し、その後10進数を16進数に変換します。

以下に、C#で8進数を16進数に変換するサンプルコードを示します。

using System;
class Program
{
    static void Main()
    {
        // 8進数の文字列
        string octalString = "26";
        
        // 8進数を10進数に変換
        int decimalValue = Convert.ToInt32(octalString, 8);
        
        // 10進数を16進数に変換
        string hexValue = Convert.ToString(decimalValue, 16).ToUpper();
        
        // 結果を表示
        Console.WriteLine($"8進数 {octalString} は 16進数で {hexValue} です。");
    }
}
8進数 26 は 16進数で 16 です。

これらのサンプルコードを使用することで、8進数から10進数、16進数から10進数、8進数から16進数への変換が簡単に行えます。

進数の特性を理解し、適切な方法で変換を行いましょう。

まとめ

この記事では、2進数の文字列を8進数、10進数、16進数に変換する方法や、逆に他の進数から2進数への変換方法について詳しく解説しました。

また、異なる進数間での変換や、特に注意が必要な点についても触れました。

これらの知識を活用することで、プログラミングにおける数値の取り扱いがよりスムーズになるでしょう。

ぜひ、実際にコードを試してみて、進数の変換に関する理解を深めてみてください。

関連記事

Back to top button