2013-01-16 180 views

回答

7

MAC地址非常接近十六进制字符串。事实上,如果你删除':'字符,你有一个十六进制字符串。

string hex = macAddress.Replace(":", ""); 

原来的问题

00:18:4D:D0:9D:62

将仅仅是

00184dD09d62

和不一样(或者只要)

466F7572746820466C6F6F72

我原来的问题(这可能是不正确的)的理解是,在OP希望基地10当量的十六进制数。如果任何其他的表示是期望的,一个可以与string.Replace除去冒号,然后解析使用Convert.ToUInt64

string hex = macAddress.Replace(":", ""); 
uint64 macAsNumber = Convert.ToUInt64(hex, 16); 

数量可以然后被转换为以任何格式期望的字符串的数目。

+0

@ J.Steen:不确定你的意思是什么“东西”。为我在答案中使用的方法添加了MSDN链接。 –

+0

@ J.Steen他只是回答了所述的问题。 – Paparazzi

+0

不确定OP是否可能想要分隔结果小数中的值的东西......即, '(0F:0F)'变成'(015015)'*或*,如果他按照你的描述需要它的话,会给出'3855'。 – NominSim

0

问题是绝对不明确的,反正......你可以做到这一点,但结果将意味着什么:

Int64 value = Int64.Parse(address.Replace(":", ""), NumberStyles.HexNumber); 

否则,你可以找回正确的地址值如下:

String[] splits = address.Split(new Char[] { ':' }); 

address = String.Empty; 

foreach (String split in splits) 
    address += Byte.Parse(split, NumberStyles.HexNumber); 
相关问题