Другие языки программирования и технологии

как в Microsoft Visual Studio 2010 в C# в системе счисления, перевести в десятеричную? Как дополнить код? Помогите плиз

Подскажите как правильно дописать код, чтобы он переводил в десятеричную систему счисления?

Вот сам Код в C# Windows Forms:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void textBox1_TextChanged(object sender, EventArgs e)
{
int i = Convert.ToInt32(textBox1.Text);
if (radioButton1.Checked == true)
{
textBox2.Text = Convert.ToString(i, 2);
}
else if (radioButton2.Checked == true)
{
textBox2.Text = Convert.ToString(i, 16);
}
else if (radioButton3.Checked == true)
{
textBox2.Text = Convert.ToString(i, 8);
}

}

private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
int i = Convert.ToInt32(textBox1.Text);
textBox2.Text = Convert.ToString(i, 2);
}

private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
int i = Convert.ToInt32(textBox1.Text);
textBox2.Text = Convert.ToString(i, 16);
}

private void radioButton3_CheckedChanged(object sender, EventArgs e)
{
int i = Convert.ToInt32(textBox1.Text);
textBox2.Text = Convert.ToString(i, 8);
}

private void Form1_Load(object sender, EventArgs e)
{

}

private void radioButton4_CheckedChanged(object sender, EventArgs e)
{
string bin = "101010";
int dec = Convert.ToInt32(bin, 2);
}
Для создания такой формы нам понадобились: 2 Label’a, 3 Radio Button’a и 2 TextBox’a. Логика программы будет построена так: пользователь вводит число в первый TextBox, нажимает на один из Radio Button’ов, чтобы выбрать систему счисления, которая будет подразумеваться под каждым из них, а во втором, нижнем, TextBox’е программа выдаст ему результат. Причём нам не понадобится нажимать на кнопки и т. п., программа будет переводить число в систему счислению по ходу того, как оно будет вписываться пользователем в первый TextBox.

Итак теперь приступим к коду. Дважды щёлкаем мышью на RadioButton1, и в том участке кода, куда нас перенесёт, пишем следующее:

int i = Convert.ToInt32(textBox1.Text);
1
int i = Convert.ToInt32(textBox1.Text);
Здесь мы считываем и конвертируем в числовой целочисленный формат строку в TextBox’е, которую нам напишет пользователь. Делаем это из-за того, что, естественно, переводить в системы счисления можно только числа, но никак не строки.

Перевод в различные системы счисления в C# на Windows Forms происходит практически автоматически и в одну строчку:

textBox2.Text = Convert.ToString(i, 2);
1
textBox2.Text = Convert.ToString(i, 2);
Сначала разберем правую сторону. Мы конвертируем наше число обратно в строку, но, так сказать, “с оговорками” в скобках. В них i – это, понятное дело, наше число, а цифра 2 означает, что мы конвертируем значение нашей переменной i в двоичную систему счисления. Всё очень просто. Результат такой конвертации мы помещаем в TextBox2.

Теперь в форме щёлкаем на вторую Radio Button и пишем то же самое, но уже для шестнадцатеричной системы счисления:

private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
int i = Convert.ToInt32(textBox1.Text);
textBox2.Text = Convert.ToString(i, 16);
}
1
2
3
4
5
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
int i = Convert.ToInt32(textBox1.Text);
textBox2.Text = Convert.ToString(i, 16);
}
Приходится заново каждый раз объявлять переменную i из-за того, что эти переменные относятся к разным элементам управления и между собой никак не связаны и не пересекаются.

Ну и, наконец, восьмеричная система счисления на третьей Radio Button:

private void radioButton3_CheckedChanged(object sender, EventArgs e)
{
int i = Convert.ToInt32(textBox1.Text);
textBox2.Text = Convert.ToString(i, 8);
}
1
2
3
4
5
private void radioButton3_CheckedChanged(object sender, EventArgs e)
{
int i = Convert.ToInt32(textBox1.Text);
textBox2.Text = Convert.ToString(i, 8);
}
Ничего неожиданного.

По сути, наша программа уже прекрасно функционирует. Мы вводим число в первый TextBox, выбираем нужную нам систему счисления – какой-либо из RadioButton’ов, а во втором TextBox’е у нас появляется результат. Мы можем щёлкать по RadioButton’ам, и ответы будут меняться в зависимости от выбранной системы счисления. Однако имеется и некоторое неудобство: если мы введём какое-нибудь другое число, которое тоже захотим перевести в другую систему счисления, то, чтобы программа заработала, надо сначала кликнуть на какой-либо RadioButton.

Иначе говоря:

Системы счисления на C#: перевод из десятичной в двоичную, шестнадцатеричную и восьмеричную - vscode.ru

Мы только запустили нашу программу, ввели число “12”, нажали на первый RadioButton, в результате у нас отразилось число в двоичной системе: “1100”. Отлично! А теперь мы решили ещё перевести в эту же систему счисления число “14”. Мы считаем “12”, пишем “14”, можем даже ещё раз щёлкнуть на нажатый уже RadioButton, но форма будет выглядеть вот так:
Сергей Колобахин
Сергей Колобахин
5 362
Лучший ответ
Игорь Саломатов Мистер а вы случаем не дегенерат потому что вы написали то что у него в коде уже было! А на сам вопрос не ответили
Антон Серавкин
Антон Серавкин
42 614
Климентий Цветков А код можете написать Windows Form?
{
textBox2.Text = Convert.ToString(i, 2);
}
Если провести аналогию с Вашими работающими функциями, то так:

private void radioButton4_CheckedChanged(object sender, EventArgs e)
{
int i = Convert.ToInt32(textBox1.Text);
textBox2.Text = Convert.ToString(i, 10);
}

В "Convert.ToString(i, 10)" 10 - это как раз и есть основание системы счисления, если всмотреться в остальные обработчики
А можно же делить например строчку 1011 на символы и умножать их на 2 в степени (длина строки - индекс массива+1) и потом все сложить
Климентий Цветков Мне нужно дополнить код - добавив 10-тичную систему счисления и сдать преподавателю в среду. Можете сказать какой код дописать к radiobutton4?
Вот предыдущий ответ хороший, я бы так же сделал