Написать код для перевода из 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 СС или исправить имеющийся»
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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д