Написать код для перевода из 10-2 и 2-10 СС или исправить имеющийся - C#

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

У меня стоит задача написать код для перевода из 10-2 и 2-10 СС Для 10-2 я написал:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
 
namespace Test
{
    public partial class frm210 : Form
    {
        Random myrnd = new Random();
        List<int> lst10 = new List<int>();
        int N, zadacha;
        public int ball;
        public frm210()
        {
            InitializeComponent();
        }
 
        private void frm210_Load(object sender, EventArgs e)
        {
            N = 0; ball = 1; zadanie();
        }
        private void zadanie()
        {
            int z;
            if (N <= 5)
            {
                lblN.Text = "Задание " + N.ToString();
                do
                {
                    z = myrnd.Next(1, 51);
                } while (lst10.Contains(z));
                lst10.Add(z);
                lblZadanie.Text = z.ToString();
                lblOsnovanie.Left = lblZadanie.Left + lblZadanie.Width;
                lblOsnovanie.Text = "10";
                raschet102(z);
            }
            else
            {
                MessageBox.Show("Этап 1 закончен, Вы набрали = " + ball.ToString() + " баллов");
                this.Close();
            }
        }
        private void raschet102(int chislo)
        {
            string s = "";
            while (chislo >= 1)
            {
                int ost = chislo % 2;
                s = ost.ToString() + s; ;
                chislo = chislo / 2;
            }
            zadacha = int.Parse(s);
            nudOtvet.Value = 0;
            nudOtvet.Focus();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            if ((int)nudOtvet.Value == zadacha)
            {
                ball++;
                MessageBox.Show("Правильно!");
            }
            else
            {
                MessageBox.Show("Неправильно, верный ответ = " + zadacha.ToString());
            }
            N++;
            nudOtvet.Value = 0;
            zadanie();
        }
    }
}
А вот обратно не получается. Помогите пожалуйста

Код к задаче: «Написать код для перевода из 10-2 и 2-10 СС или исправить имеющийся - C#»

textual
        static public int c2to10(string s)
        {
            return s.ToCharArray().Aggregate(0, (acc, e) => acc * 2 + (int)(e - '0'));
        }
 
        static public string c10to2(int i)
        {
            string s = "";
            while (i > 0) { s = (i % 2).ToString() + s; i /= 2; }
            return s == "" ? "0" : s;
        }
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

12   голосов, оценка 4.083 из 5


СДЕЛАЙТЕ РЕПОСТ