Вот мой первый опыт работы с C#.
Задачу мне поставили следующую:
Необходимо написать конвертер чисел в двоичной системе в 16-ричную и 8-ричную.
Пользователь вводит числа, которые должны храниться в массиве, а потом нажав на номер индекса получить введеное число в других (указанных выше) СС. использование стандартных функций C# для решение этой задачи запрещено. Т.е. все арифметические действия с числами должна производить моя программа.
Проблема в том, что я не знаю какой функцией сделать разбивку двоичного числа на группы по 3 и при этом разбивка должна происходить справо на лево и старший бит должен добиваться нолями до 3 чисел, если их не хватает.
Я предполагал копировать от числа последние 3 символа -> присваивать их переменной -> конвертировать -> удалять из первоначального числа 3 уже ненужные использованные числа -> копировать 3 последних и далее по кругу, но дело в том, что у меня не копируются последние 3, и я не могу придумать, как заполнить старший бит нолями, если в нем будет недостаточно чисел.
Понимаю, что это коряво, но ведь должно работать?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//using System.Text.RegularExpressions;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
// Создаем массив
string[] nums = new string[12];
// Создаем временный массив для конвертации чисел
string[] temp = new string[3];
// Количество символов в группе для перевода в восьмеричную систему
int oct = 3;
// Получаем двоичные числа для конвертации
Console.WriteLine("Введите 12 чисел");
for (int i = 0; i < nums.Length; i++)
{
Console.Write("{0} - е число: ", i + 0);
nums[i] = Console.ReadLine();
}
// Получаем индекс конвертируемого числа
Console.WriteLine("Выберите число по порядковому номеру, для конвертации.");
// Передаем переменной значение, хранящееся в массиве
int s;
s = Int32.Parse(Console.ReadLine());
// Тут должна быть работа с переменной.
int binary;
// Переменная binary получает первые 3 числа с ней проводятся арифметические операции, и т.д.
// В итоге должно получится число, которое будет результатом перевода из двоичной системы в восьмеричную.
string b = s.Length;
Console.WriteLine(nums[s]);
Console.ReadLine();
}
}
}
Подскажите о каких функциях мне надо почитать, чтобы решить задачу.
P.S.
Еще пробовал реализовать разбивку регулярными выражениями, но там совсем запутался.
Для меня вопрос очень сложный, поэтому в сложности укажу сложный.