Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2013, 22:11   #1
FroZko
Пользователь
 
Регистрация: 11.11.2012
Сообщений: 23
По умолчанию Перевод чисел в другую систему счисления

Здравствуйте всем, уважаемые знатоки! Столкнулся с такой вот микро-проблемой. Есть приложение WindowsForms, которое должно переводить двоичное число в 8, 10 и 16 системы счисления. С помощью встроенных функций сделал перевод в 10 и 16 системы, а вот в 8 не могу! Прилагаю код написанный в событии button_click кнопки "Do". Ошибка в красной строке, как можно догадаться. Скрин окошка во вложении.
Код:
        if (radioButton1.Checked == true)
            {
                string binary = textBox1.Text;
                int integer = Convert.ToInt32(binary, 2);
                textBox2.Text = Convert.ToString(integer);
            }

        if (radioButton2.Checked == true)
        {
            string binary = textBox1.Text;
            int integer = Convert.ToInt32(binary, 2);
            textBox2.Text = Convert.ToString(integer);
        }

        if (radioButton3.Checked == true)
        {
            string binary = textBox1.Text;
            int integer = Convert.ToInt16(binary, 2);
            textBox2.Text = Convert.ToString(integer);
        }
Изображения
Тип файла: jpg 01.jpg (18.3 Кб, 610 просмотров)
FroZko вне форума Ответить с цитированием
Старый 22.03.2013, 10:09   #2
mrMeerkat
Следопыт
Форумчанин
 
Аватар для mrMeerkat
 
Регистрация: 26.04.2012
Сообщений: 307
По умолчанию

Так должно работать(непонятно, что за ошибка в красной строке)
Код:
            if (radioButton1.Checked == true)
            {
                string binary = textBox1.Text;
                int integer = Convert.ToInt32(binary, 2);
                textBox2.Text = Convert.ToString(integer,8);
            }

            if (radioButton2.Checked == true)
            {
                string binary = textBox1.Text;
                int integer = Convert.ToInt32(binary, 2);
                textBox2.Text = Convert.ToString(integer,10);
            }

            if (radioButton3.Checked == true)
            {
                string binary = textBox1.Text;
                int integer = Convert.ToInt32(binary, 2);
                textBox2.Text = Convert.ToString(integer,16);
            }
С Баша:Быть ленивым, глупым, жадным, да и просто редкостным гандоном и мудаком по жизни номально, а вот если ты матом ругаешься-то это да, ужасно и достойно общественного порицания.
mrMeerkat вне форума Ответить с цитированием
Старый 22.03.2013, 10:42   #3
asmars
Форумчанин
 
Аватар для asmars
 
Регистрация: 28.05.2011
Сообщений: 309
По умолчанию

Вот должно работать..

Код:
static readonly Regex binary = new Regex("^[01]{1,32}$", RegexOptions.Compiled);
static void Main() {
    Test("");
    Test("01101");
    Test("123");
    Test("0110101101010110101010101010001010100011010100101010");
}
static void Test(string s) {
    if (binary.IsMatch(s)) {
        Console.WriteLine(Convert.ToInt32(s, 2));
    } else {
        Console.WriteLine("invalid: " + s);
    }
}
Вот ссыль если что http://stackoverflow.com/questions/1...ing-to-integer
Спеши медленно.
asmars вне форума Ответить с цитированием
Старый 22.03.2013, 10:44   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

asmars, Это что?! Ваш код не решает задачу: у Вас нет перевода числа в восьмиричную или шестнадцатеричную системы счисления!


mrMeerkat
а чего строчки
Цитата:
Код:
                string binary = textBox1.Text;
                int integer = Convert.ToInt32(binary, 2);
не вынести выше, до if ?!
Они же явно общие для всех вариантов...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.03.2013, 11:12   #5
asmars
Форумчанин
 
Аватар для asmars
 
Регистрация: 28.05.2011
Сообщений: 309
По умолчанию

Как я понял этот код переводит в двоичную систему, с чем у автора топика проблема.
Спеши медленно.
asmars вне форума Ответить с цитированием
Старый 22.03.2013, 11:17   #6
mrMeerkat
Следопыт
Форумчанин
 
Аватар для mrMeerkat
 
Регистрация: 26.04.2012
Сообщений: 307
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
mrMeerkat
а чего строчки
[код]
не вынести выше, до if ?!
Они же явно общие для всех вариантов...
Я поправил по логике ТС.

Сам бы писал по-другому, возможно, что-то типа того:
Код:
        Program()
        {
            InitializeComponent();
            radioButton1.CheckedChanged += new EventHandler(radioButton_CheckedChanged);
            radioButton2.CheckedChanged += new EventHandler(radioButton_CheckedChanged);
            radioButton3.CheckedChanged += new EventHandler(radioButton_CheckedChanged);
        }  
      
        private void radioButton_CheckedChanged(object sender, EventArgs e)
        {
            button2.Tag = ((RadioButton)sender).Text;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            textBox2.Text = Convert.ToString(Convert.ToInt32(textBox1.Text, 2), int.Parse(button2.Tag.ToString()));
        }
А может и нет
С Баша:Быть ленивым, глупым, жадным, да и просто редкостным гандоном и мудаком по жизни номально, а вот если ты матом ругаешься-то это да, ужасно и достойно общественного порицания.
mrMeerkat вне форума Ответить с цитированием
Старый 22.03.2013, 11:26   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от mrMeerkat
Сам бы писал по-другому, возможно, что-то типа того:
Вот! Вот это уже совсем другое дело!!
Красотища!!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.03.2013, 12:59   #8
FroZko
Пользователь
 
Регистрация: 11.11.2012
Сообщений: 23
По умолчанию

спасибо большое всем! теперь проблема решена!
FroZko вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод чисел из одной системы счисления в другую Elenka88 Помощь студентам 3 06.03.2013 12:41
перевод чисел из одной системы счисления в другую GAngelika Паскаль, Turbo Pascal, PascalABC.NET 2 16.12.2010 09:36
Перевод целых чисел из одной системы счисления в другую =LeonZone= Помощь студентам 19 12.12.2010 16:18
перевод чисел из одной системы счисления в другую laponka Помощь студентам 3 18.09.2009 09:20
написал алгоритм перевода чисел из 10 в любую другую систему счисления...компилиться, но не выполняеться STR78 Общие вопросы C/C++ 4 03.11.2008 17:07