十六进制整数
我知道如何将十六进制转换为整数,当我只有一个十六进制字符。但我得到一串两个字符。十六进制整数
我都转换字符为十六进制:
String.Format("{0:x2}", (uint)System.Convert.ToUInt32(tmp.ToString()))
这样的话可以说我有01和3F为我的两个长度的字符。我应该如何将这些转换为整数?我试图做
int length = int.Parse("013f", System.Globalization.NumberStyles.AllowHexSpecifier);
但显然这是不正确的。我甚至采取了这两个值,Concat'd他们在一起,然后试图解析他们..显然是不对的
我做错了什么试图解析这两个十六进制到一个长度,或者是服务器即时通讯使用非标准长度系统获取信息。因为当第一个字符是00时,我可以得到正确的长度,如0001或其他。即时通讯只是不确定当我有两个长度的字符。
编辑:一些试验和错误后,预期值是491
更新二:
基本上服务器为我提供了两个字符的长字符串,它告诉你的长度的以下数据。
这个特定属性的两个字符是01和3f。以下数据长度为491个字符,据我所知,与013f无关,但我知道有一个地方,因为另一个应用程序正在使用这个完全相同的数据,但出来的是正确的结果。
这个问题不是很清楚。
十六进制值0x013F
是十进制的319
。您的代码正确地评估这一点,但我会用NumberStyles.HexNumber
而不是NumberStyles.AllowHexSpecifier
:
int length = int.Parse("013f", NumberStyles.HexNumber);
你在期待0x013F
数转换为?
也可以使用Convert.ToInt32()方法:http://msdn.microsoft.com/en-us/library/1k20k614.aspx – 2010-10-17 23:11:29
这就是即时通讯做的,这是与319出来我认为哪些不是我需要的长度。 – caesay 2010-10-17 23:14:33
319是正确的,不是吗? – 2010-10-17 23:17:21
你的长度是多少? – 2010-10-17 23:12:30
是什么让你认为这段代码不正确?它返回319,这是0x013f的十进制表示形式 – 2010-10-17 23:44:03
您能为我们提供更多数据吗?或者,** 1)**隐藏到十六进制,** 2)**交换最后两位数,** 3)**添加100 – Pedery 2010-10-18 02:23:30