Convertクラスを使うことにより、基数を指定して文字列と数値の相互変換を行うことができます。 これにより、例えば16進数表記の文字列を数値にする、あるいはその逆といったことができます。 基数として指定できる値は、2, 8, 10, 16のいずれかです。
Convertクラスを使って数値の基数変換を行う
using System;
class Sample {
static void Main()
{
Console.WriteLine("(128)10 = ({0})2", Convert.ToString(128, 2)); // 10進数の値128を2進数で表記された文字列に変換
Console.WriteLine("(128)10 = ({0})16", Convert.ToString(128, 16)); // 10進数の値128を16進数で表記された文字列に変換
Console.WriteLine();
Console.WriteLine("b100 = {0}", Convert.ToInt32("100", 2)); // 文字列"100"を2進数で表された数値としてintに変換
Console.WriteLine("0x100 = {0}", Convert.ToInt32("100", 16)); // 文字列"100"を16進数で表された数値としてintに変換
}
}
実行結果
(128)10 = (10000000)2 (128)10 = (80)16 b100 = 4 0x100 = 256
16進数形式で表記した文字列は、ToStringメソッドに書式指定子X
を指定することでも得られます。 具体例は§.16進整数リテラルを参照してください。
また、.NET 8以降であれば、書式指定子B
を指定することで2進数形式で表記した文字列を得ることができます。 具体例は§.2進整数リテラルを参照してください。
Convertクラスや、他の手段による基数変換についてはビット演算 §.数値・文字列間での基数変換にて詳しく解説しています。