基数を指定して数値を文字列化するには、Convert.ToStringメソッドを使用します。 引数toBaseに基数を指定すると、その基数で数値を文字列化することができます。 基数には2, 8, 10, 16のいずれかを指定できます。
このメソッドでは0埋め・桁揃えをすることはできないので、そういった目的にはString.PadLeftメソッド等と組み合わせて使用します。 また、基数に16を指定した場合は、0
〜9
と小文字a
〜f
が用いられるため、16進数を大文字で表記したい場合はさらにString.ToUpperメソッドを組み合わせる必要があります。
Convert.ToStringとString.PadLeftを使って、基数と桁数を指定して文字列化する
using System;
static class Sample {
static void Main()
{
var n = 123;
// 基数を指定して値を文字列化
Console.WriteLine("base = 2: {0}", Convert.ToString(n, 2)); // 2進数表記で数値nを文字列化
Console.WriteLine("base = 10: {0}", Convert.ToString(n, 10)); // 10進数表記で数値nを文字列化
Console.WriteLine("base = 16: {0}", Convert.ToString(n, 16)); // 16進数表記で数値nを文字列化
Console.WriteLine();
// 基数と桁数を指定して右揃えで値を文字列化
Console.WriteLine("base = 2: {0}", Convert.ToString(n, 2).PadLeft(8)); // 桁数8・右揃えで数値nを 2進数表記化
Console.WriteLine("base = 10: {0}", Convert.ToString(n, 10).PadLeft(8)); // 桁数8・右揃えで数値nを10進数表記化
Console.WriteLine("base = 16: {0}", Convert.ToString(n, 16).PadLeft(8)); // 桁数8・右揃えで数値nを16進数表記化
Console.WriteLine();
// 基数と桁数を指定して0埋めして値を文字列化
Console.WriteLine("base = 2: {0}", Convert.ToString(n, 2).PadLeft(8, '0')); // 桁数8・0埋めして数値nを 2進数表記化
Console.WriteLine("base = 10: {0}", Convert.ToString(n, 10).PadLeft(8, '0')); // 桁数8・0埋めして数値nを10進数表記化
Console.WriteLine("base = 16: {0}", Convert.ToString(n, 16).PadLeft(8, '0')); // 桁数8・0埋めして数値nを16進数表記化
Console.WriteLine();
}
}
実行結果
base = 2: 1111011 base = 10: 123 base = 16: 7b base = 2: 1111011 base = 10: 123 base = 16: 7b base = 2: 01111011 base = 10: 00000123 base = 16: 0000007b