2013-01-16 7 views

ответ

7

MAC-адрес - это почти шестнадцатеричная строка. Фактически, если вы удаляете символы ':', у вас есть шестнадцатеричная строка.

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

К первоначальному вопросу

00: 18: 4d: D0: 9d: 62

бы просто

00184dD09d62

, а не такой же, как (или до тех пор)

466F7572746820466C6F6F72

Мое первоначальное чтение вопроса (который, вероятно, неправильно), что ОП хотел базу 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); 
Смежные вопросы