[C#] 2進数の文字列を8進数、10進数、16進数に変換する方法
C#で2進数の文字列を8進数、10進数、16進数に変換するには、まずConvert.ToInt32メソッド
を使用して2進数の文字列を整数に変換します。
次に、その整数を目的の進数に変換します。
例えば、10進数への変換はそのまま整数を使用し、8進数や16進数への変換はConvert.ToStringメソッド
を使ってそれぞれ基数8や16で文字列に変換します。
- 2進数を10進数に変換する方法
- 2進数を8進数に変換する方法
- 2進数を16進数に変換する方法
- 他の進数から2進数への変換方法
- 異なる進数間での変換方法
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
は次のように変換されます。
- 右から3桁ずつ区切る:
10 110 1
(不足分は0で埋める) 010 110 001
に変換- 各グループを8進数に変換:
010
→ 2110
→ 6001
→ 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
は次のように変換されます。
- 右から4桁ずつ区切る:
1101 1011
- 各グループを16進数に変換:
1101
→ D1011
→ 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進数への変換方法について詳しく解説しました。
また、異なる進数間での変換や、特に注意が必要な点についても触れました。
これらの知識を活用することで、プログラミングにおける数値の取り扱いがよりスムーズになるでしょう。
ぜひ、実際にコードを試してみて、進数の変換に関する理解を深めてみてください。