синтаксис для перевода из одной СС в другую - C#

Формулировка задачи:

Выполните умножение: а) 1100110(2) и 1011010(2); б) 2001,6(8) и 125,2(8); в) 2C,4(16) и 12,98(16). Результаты представьте в десятичной, двоичной, восьмеричной и шестнадцатеричной форме. Найдите максимальное и минимальное из следующих чисел: 1658, 19810, 1AF16. помогите написать или объясните пожалуйста))

Код к задаче: «синтаксис для перевода из одной СС в другую - C#»

textual
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
 
        metka:
            string x1 = "", x2 = "", znak = "";
            int OSNOVANIE1=0, OSNOVANIE2=0, OSNOVANIE3=0,one=0,two=0;
            try
            {
                Console.WriteLine("Введите первое число");
                x1 = Console.ReadLine();
                Console.WriteLine("Введите основание системы счисления первого числа");
                OSNOVANIE1 = Int32.Parse(Console.ReadLine());
                Console.WriteLine("Введите второе число");
                x2 = Console.ReadLine();
                Console.WriteLine("Введите основание системы счисления второго числа");
                OSNOVANIE2 = Int32.Parse(Console.ReadLine());
                Console.WriteLine("Введите знак операции");
                znak = Console.ReadLine();
 
                if (znak != "=")
                {
                    Console.WriteLine("Введите основание системы счисления результата");
                    OSNOVANIE3 = Int32.Parse(Console.ReadLine());
                    if (OSNOVANIE3 != 2 && OSNOVANIE3 != 8 && OSNOVANIE3 != 10 && OSNOVANIE3 != 16) { throw(null); }
                }
 
 
                one = Convert.ToInt32(x1, OSNOVANIE1);
                two = Convert.ToInt32(x2, OSNOVANIE2);
            }
            catch
            {
                Console.WriteLine("Вы ввели чушь! Начать сначала? 1-да, иначе-программа закроется");
                if (Console.ReadLine() == "1")
                {
                    goto metka;
                }
               else{return;}
            }
            int result = 0;
            string sravnenie = "";
            switch (znak)
            {
                case "*":
                    result = one * two;
                    break;
 
                case "+":
                    result = one + two;
                    break;
 
                case "/":
                    result = one / two;
                    break;
 
                case "-":
                    result = one - two;
                    break;
 
                case "=":
                    if (one == two) { sravnenie = "равно"; }
                    if (one > two) { sravnenie = "больше"; }
                    if (one < two) { sravnenie = "меньше"; }
                    break;
 
 
                default:
                    Console.WriteLine("Идите к черту, не знаю я такой операции! Начать сначала? 1-да, иначе-программа закроется");
                    if (Console.ReadLine() == "1")
                    {
                        goto metka;
                    }
                    else{return;}
                    break;
 
            }
 
            if (znak != "=")
            {
                Console.WriteLine(x1 + "(" + OSNOVANIE1.ToString() + ")" + " " + znak + " " + x2 + "(" + OSNOVANIE2.ToString() + ")" + "=" + " " + Convert.ToString(result, OSNOVANIE3) + "(" + OSNOVANIE3.ToString() + ")");
            }
            else
            {
                Console.WriteLine(x1 + "(" + OSNOVANIE1.ToString() + ")" + " " + sravnenie + " " + x2 + "(" + OSNOVANIE2.ToString() + ")");
            }
            Console.WriteLine("Посчитать еще что-то? 1-да, иначе-программа закроется");
            if (Console.ReadLine() == "1")
            {
                goto metka;
            }
 
 
            
        }
    }
}

9   голосов, оценка 4.111 из 5


СОХРАНИТЬ ССЫЛКУ