C#将整数转换为十六进制?
我正在使用Cosmos模板构建一个c#os。我需要编写自己的方法,将int值转换为2字节usehx值。我不能使用任何预构建的函数(如C#将整数转换为十六进制?,c#,integer,decimal,hex,C#,Integer,Decimal,Hex,我正在使用Cosmos模板构建一个c#os。我需要编写自己的方法,将int值转换为2字节usehx值。我不能使用任何预构建的函数(如ToString(“X”)或String.Format)。我试图写一个方法,但失败了。有任何代码、想法、建议或教程吗?编辑:好的,现在我们知道你在Cosmos工作,我有两个建议 第一:自己建造: static readonly string Digits = "0123456789ABCDEF"; static string ToHex(byte b) {
ToString(“X”)
或String.Format
)。我试图写一个方法,但失败了。有任何代码、想法、建议或教程吗?编辑:好的,现在我们知道你在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];
}
当然,您可以将这两种方法结合起来,使用第一种(相对较慢)方法生成查找表。这是家庭作业吗?您可以发布失败的方法吗?为什么不能使用内置函数?奇怪的限制,除非这是家庭作业。不,这只是为了好玩lol,但失败的方法只是将每个数字转换为十六进制值(如1到01,15到0F等),但对每个数字都要这样做,而且必须有一些数学方法将整数转换为十六进制。他说他不能使用ToString(出于任何原因)这不适用于Cosmos编译器,我试图编写自己的方法来将int转换为十六进制,但它只转换每个数字(如15到0F),但我无法预测每个数字需要多少时间ever@m.edmondson:啊,我错过了那一点。我只看到他试过了,但没有成功。@user721493:如果说你是从Cosmos开始的,那会很有用。就我个人而言,我不知道宇宙中的限制是什么,这使得这个问题很难回答。。。不过,编辑。