Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#将整数转换为十六进制?_C#_Integer_Decimal_Hex - Fatal编程技术网

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

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) {

我正在使用Cosmos模板构建一个c#os。我需要编写自己的方法,将int值转换为2字节usehx值。我不能使用任何预构建的函数(如
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开始的,那会很有用。就我个人而言,我不知道宇宙中的限制是什么,这使得这个问题很难回答。。。不过,编辑。