十六进制到整数

时间:2010-10-17 23:03:05

标签: c# decimal hex

我知道当我只有一个十六进制字符时如何将十六进制转换为整数。但我得到一个两个字符串。

我将这两个字符转换为十六进制:

String.Format("{0:x2}", (uint)System.Convert.ToUInt32(tmp.ToString()))

然后让我说我有01和3f作为我的两个长度字符。我应该如何将它们转换为整数?我试着做了

int length = int.Parse("013f", System.Globalization.NumberStyles.AllowHexSpecifier);

但显然这是不正确的。我甚至把两者的价值,Concat一起拿到了它们,然后试图解析它们......那显然是不对的

我试图将这两个十六进制解析成一个长度,或者服务器是否使用非标准长度系统获取信息。因为我可以在第一个字符为00时得到正确的长度,如0001或其他东西。我只是不确定我有两个长度字符。

编辑:经过一些试验和错误后,预期值为491

更新二号:

基本上,服务器为我提供了一个两个字符长的字符串,它告诉你以下数据的长度。

此特定属性的两个字符是01和3f。以下数据长491个字符,据我所知,它与013f无关,但我知道有一个地方,因为另一个应用程序正在使用这个完全相同的数据但是出来的正确结果

1 个答案:

答案 0 :(得分:3)

问题是什么并不是很清楚。

十六进制值0x013F是十进制319。尽管我使用的是NumberStyles.HexNumber而不是NumberStyles.AllowHexSpecifier

,但您的代码会对此进行正确评估
int length = int.Parse("013f", NumberStyles.HexNumber);

您希望0x013F转换为什么号码?