我正在使用Cosmos模板构建一个c#os。我需要编写自己的方法,将int值转换为2字节使用十六进制值。我无法使用任何预建功能(例如ToString("X")
或String.Format
)。我尝试写一个方法,但它失败了。任何代码,想法,建议或教程?
答案 0 :(得分:1)
首先:自己构建:
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];
}
当然,您可以使用第一种(相对较慢的)方法组合这两种方法来生成查找表。