Member 13777741 Ответов: 1

Как преобразовать шестнадцатеричную строку в десятичную


В настоящее время я работаю над школьным проектом, который должен конвертировать IP-адреса в другую систему счисления, сохраняя при этом общий "синтаксис" IP-адреса и делая то же самое наоборот, и в настоящее время я сталкиваюсь с проблемой, пытаясь преобразовать шестнадцатеричное значение обратно в десятичное.

Процедура, которую я использую для преобразования из десятичной в шестнадцатеричную, например, будет выглядеть следующим образом

string DecimalToHex(string input)
{
    return String.Join(".", (input.Split('.').Select(x => Convert.ToString(Int32.Parse(x), 16))).ToArray());
}


С (строковым вводом) , являющимся текстом текстового поля. И если этот вход - "c0", я бы хотел, чтобы выход - конечно же-был 192.

Что я уже пробовал:

Я попробовал несколько вещей, которые нашел в сети, например, работать с системой.Глобализация.Числовые стили.Шестнадцатеричный номер, но пока безрезультатно.

1 Ответов

Рейтинг:
2

Richard MacCutchan

Начните с того, что избегайте сложных операторов, подобных этому, где вы не можете видеть результаты на каждом шаге. Воспользуйся String.Split чтобы получить массив, содержащий четыре поля, преобразуйте каждое из них в целочисленное значение. Из этого вы можете использовать Строка.Метод Форматирования (Система) | Microsoft Docs[^] для отображения их в виде десятичных значений. И небольшое изменение позволит вам конвертировать десятичные строки в шестнадцатеричные.