C#将整数转换为十六进制?

时间:2011-04-23 06:39:02

标签: c# integer decimal hex

我正在使用Cosmos模板构建一个c#os。我需要编写自己的方法,将int值转换为2字节使用十六进制值。我无法使用任何预建功能(例如ToString("X")String.Format)。我尝试写一个方法,但它失败了。任何代码,想法,建议或教程?

1 个答案:

答案 0 :(得分:1)

编辑:好的,现在我们知道你在Cosmos工作,我有两个建议。

首先:自己构建:

static readonly string Digits = "0123456789ABCDEF";

static string ToHex(byte b)
{
    char[] chars = new char[2];
    chars[0] = Digits[b / 16];
    chars[1] = Digits[b % 16];
    return new string(chars);
}

请注意参数类型byte而不是int,以强制它为单字节值,转换为双字符十六进制字符串。

第二:使用查找表:

static readonly string[] HexValues = { "00", "01", "02", "03", ... };

static string ToHex(byte b)
{
    return HexValues[b];
}

当然,您可以使用第一种(相对较慢的)方法组合这两种方法来生成查找表。