整数を 16 進数 (基数 16) に変換するサンプル コードを次に示します。
int num = 48764; // assign your number
// Generate hexadecimal number in reverse.
var sb = new StringBuilder();
do
{
sb.Append(hexChars[num & 15]);
num >>= 4;
}
while (num > 0);
// Pad with leading 0s for a minimum length of 4 characters.
while (sb.Length < 4)
sb.Append('0');
// Reverse string and get result.
char[] chars = new char[sb.Length];
sb.CopyTo(0, chars, 0, sb.Length);
Array.Reverse(chars);
string result = new string(chars);
PadLeft(4, '0')
文字列の先頭に 0 を追加して、最小長が 4 文字になるようにします。
値のhexChars
ルックアップは、文字列として簡単に定義できます。
internal static readonly string hexChars = "0123456789ABCDEF";
編集:次のものに置き換えStringBuilder
ますList<char>
:
// Generate hexadecimal number in reverse.
List<char> builder = new List<char>();
do
{
builder.Add(hexChars[num & 15]);
num >>= 4;
}
while (num > 0);
// Pad with leading 0s for a minimum length of 4 characters.
while (builder.Count < 4)
builder.Add('0');
// Reverse string and get result.
char[] chars = new char[builder.Count];
for (int i = 0; i < builder.Count; ++i)
chars[i] = builder[builder.Count - i - 1];
string result = new string(chars);
注:この変換の説明については、Expert .NET Micro Frameworkの「16 進数出力」セクションを参照してください。