Перевод из 16-ричной в 2-ичную систему счисления - C#
Формулировка задачи:
Доброго времени суток. Помогите написать консольное приложение на с#. Перевод числа из 16-ричной сс в 2-ичную. Только вся проблема в том, что при решении нельзя использовать метод Convert. Надумал решение, берем число в 16 сс и пихаем его в массив, затем достаем каждый элемент сравниваем со значениями по готовой таблице перевода 16 в 2 сс и присваеваем каждому элементу массива свое значение. То есть если у нас число D7, '7' - присваеваем 0111 а 'D' - 1101. В теории все работает а на практике ни черта не получается. И как запихать в массив все элементы одной строкой? Не вводить каждый элемент по отдельности. Может у кого есть другие пути решения? Спасибо
Решение задачи: «Перевод из 16-ричной в 2-ичную систему счисления»
textual
Листинг программы
var d = new Dictionary<string, string>(StringComparer.CurrentCultureIgnoreCase) { { "0", "0000" }, { "1", "0001" }, { "2", "0010" }, { "3", "0011" }, { "4", "0100" }, { "5", "0101" }, { "6", "0110" }, { "7", "0111" }, { "8", "1000" }, { "9", "1001" }, { "a", "1010" }, { "b", "1011" }, { "c", "1100" }, { "d", "1101" }, { "e", "1110" }, { "f", "1111" } }; var number = "123AbC"; // Console.ReadLine() var digits = number.Select(c => d[c.ToString()]).SelectMany(c => c).SkipWhile(c => c == '0'); var newNumber = string.Join("", digits); if (newNumber == "") newNumber = "0"; Console.WriteLine("{0}(16) = {1}(2)", number, newNumber); Console.ReadLine();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д