Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 22.06.2021
Сообщений: 29

Как считать число из textbox в определенной системе счисления

27.06.2021, 00:17. Показов 2825. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Пишу калькулятор систем счислений на C# Windows Forms, на шарпе только учусь в основном писал консольные приложения, с формами начал знакомится недавно. Вопрос: Как считать число из текстбокс в определенной системе счисления. Например ввожу я значит в текстбокс число в двоичной системе счисления 1010, выбираю функцию перевода в десятичную, должно получится 10 но т.к. текст бокс отправил в программу 1010 в десятичной системе счисления то выходит совсем другое. Я сломал голову, не знаю даже как подойти к этой проблеме.
Миниатюры
Как считать число из textbox в определенной системе счисления   Как считать число из textbox в определенной системе счисления  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.06.2021, 00:17
Ответы с готовыми решениями:

Можно ли через scanf считать число, записанное в двоичной системе счисления
Добрый день уважаемые обитатели. Вопрос заключается в следующем: Можно ли через scanf считать двоичное число?

В файле найти максимальное число в заданной системе счисления и вывести его на экран в десятичной системе счисления
На вход программе подаётся текстовый файл input.txt, содержащий символьную последовательность произвольной длины. В последовательности...

Дано целое число X в десятичной системе счисления. Выведите запись числа X в восьмеричной системе счисления
Почему настоящие программисты путают католическое Рождестово и Halloween? Потому что 25 DEC = 31 OCT. Дано целое число X в...

7
Строитель
 Аватар для Nord790
889 / 556 / 194
Регистрация: 01.04.2014
Сообщений: 610
Записей в блоге: 6
27.06.2021, 01:17
Лучший ответ Сообщение было отмечено Nedohackerman как решение

Решение

Nedohackerman,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
        string hexchar = "ABCDEFabcdef";
 
        enum NumeralSystem {
            Bin, Dec, Hex
        }
 
        NumeralSystem CurrentNumeralSystem = NumeralSystem.Dec;
 
        private void radioButtonBin_CheckedChanged(object sender, EventArgs e) {
            if (CurrentNumeralSystem == NumeralSystem.Bin)
                return;
            var lastValue = CurrentNumeralSystem;
            CurrentNumeralSystem = NumeralSystem.Bin;
            ChangeNumeralSystem(lastValue);
        }
 
        private void radioButtonDec_CheckedChanged(object sender, EventArgs e) {
            if (CurrentNumeralSystem == NumeralSystem.Dec)
                return;
            var lastValue = CurrentNumeralSystem;
            CurrentNumeralSystem = NumeralSystem.Dec;
            ChangeNumeralSystem(lastValue);
        }
 
        private void radioButtonHex_CheckedChanged(object sender, EventArgs e) {
            if (CurrentNumeralSystem == NumeralSystem.Hex)
                return;
            var lastValue = CurrentNumeralSystem;
            CurrentNumeralSystem = NumeralSystem.Hex;
            ChangeNumeralSystem(lastValue);
        }
 
        private void ChangeNumeralSystem(NumeralSystem lastValue) {
            if (string.IsNullOrEmpty(textBoxNum.Text)) return;
            switch (CurrentNumeralSystem) {
                case NumeralSystem.Bin: {
                        textBoxNum.Text = (lastValue == NumeralSystem.Hex) ?
                            Convert.ToString(Convert.ToInt64(textBoxNum.Text, 16), 2) : textBoxNum.Text = Convert.ToString(long.Parse(textBoxNum.Text), 2);
                    }
                    break;
                case NumeralSystem.Dec: {
                        textBoxNum.Text = Convert.ToInt64(textBoxNum.Text, (lastValue == NumeralSystem.Bin) ? 2 : 16).ToString();
                    }
                    break;
                case NumeralSystem.Hex: {
                        textBoxNum.Text = (lastValue == NumeralSystem.Bin) ? 
                                textBoxNum.Text = Convert.ToString(Convert.ToInt64(textBoxNum.Text, 2), 16) : Convert.ToString(long.Parse(textBoxNum.Text), 16);
                    }
                    break;
            }
        }
 
        private void textBoxNum_KeyPress(object sender, KeyPressEventArgs e) {
            if (((Keys)(e.KeyChar)) == Keys.Back)
                return;
            switch (CurrentNumeralSystem) {
                case NumeralSystem.Dec: {
                        e.Handled = (e.KeyChar == ',') ? textBoxNum.Text.Contains(',') : !char.IsDigit(e.KeyChar);
                    }
                    break;
                case NumeralSystem.Bin: {
                        e.Handled = !((e.KeyChar == '0') | (e.KeyChar == '1'));
                    }
                    break;
                case NumeralSystem.Hex: {
                        e.Handled = (hexchar.Contains(e.KeyChar)) ? false : !char.IsDigit(e.KeyChar);
                    }
                    break;
            }
        }
Вложения
Тип файла: zip Project.zip (40.1 Кб, 8 просмотров)
1
0 / 0 / 0
Регистрация: 22.06.2021
Сообщений: 29
28.06.2021, 00:04  [ТС]
Спасибо за ответ, он решил одну проблему, но основная осталась. Что надо писать что бы число из строки в двоичной системе входило переменную для расчетов в этой же системе, ибо ничего не получается оно все равно считает как 1010 в двоичной + 1010 в двоичной = 2020?
Миниатюры
Как считать число из textbox в определенной системе счисления  
0
Строитель
 Аватар для Nord790
889 / 556 / 194
Регистрация: 01.04.2014
Сообщений: 610
Записей в блоге: 6
28.06.2021, 00:42
Nedohackerman, я бы сделал вычисление в отдельном методе, и в этом методе проверял какая систем счисления установлена, переводил введенное число в десятичную систему, произвел операцию и перевел обратно
1
0 / 0 / 0
Регистрация: 22.06.2021
Сообщений: 29
28.06.2021, 00:50  [ТС]
Про отдельный метод я думал, но как эту проверку сделать что бы бралось именно двоичное число из текстбокса? то есть ввел я в текстбокс 1010+1010 выбрал в радиобаттон что это именно двоичная, и оно ушло в метод, перевелось в 10 сс, посчитало, конвертировало обратно в двоичное, и отдало на вывод из этого метода, я могу написать метод с расчетами в десятичной но как текстбокс проверить на то какая сс в нем находится?
0
Строитель
 Аватар для Nord790
889 / 556 / 194
Регистрация: 01.04.2014
Сообщений: 610
Записей в блоге: 6
28.06.2021, 01:03
Nedohackerman, просто запретите ввод в текстбоксе остальных цифр кроме 0 и 1 если кончено выбрана двоичная система
1
0 / 0 / 0
Регистрация: 22.06.2021
Сообщений: 29
28.06.2021, 01:07  [ТС]
Большое спасибо. Сейчас попробую, отпишусь.
0
0 / 0 / 0
Регистрация: 22.06.2021
Сообщений: 29
28.06.2021, 07:46  [ТС]
Как я не бился ничего не получилось. Если не сложно можете небольшой пример накидать хотя бы с одной сс? Извиняюсь за
наглость просто спросить не у кого, а примеров не нашел больше.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.06.2021, 07:46
Помогаю со студенческими работами здесь

Если строка является изображением целого числа в восьмеричной системе счисления, то перевести ее в целое число в двоичной системе счисления
Вводится строка символов. Если она является изображением целого числа в восьмеричной системе счисления, то перевести ее в целое число в...

Вводятся число в 16-системе счисления (состоящая из 8 символов) ,перевести это число в 10-систему счисления
Используя switch

Ввести число в 10-чной системе счисления, вывести его на экран в 16-чной системе счисления
Вывести на экран число представляющие в 16-чной системе счисления. Число вводится в 10-чной с/с. Программа должна быть реализована на...

Таблица умножения в определённой системе счисления
Составил программу выводящую таблицу умножения в определённой системе счисления. Составлял на pascalABC, но работу преподаватель принимает...

Как вывести число в десятичной системе счисления?!
Нужно вывести в Label рандомные числа в десятичной системе счисления.Числа не должны повторяться.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru