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

Из 16 СС в 10 СС

11.07.2017, 00:05. Показов 1588. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброй ночи форумчане. Не поможете с одним вопросом? Есть такое задание. Дано число в 16-ой системе исчисления состоящее обязательно из 8 символов.
Необходимо :
1) перевести число в 10-ую систему исчисления и забить его в label1
2) разбить это число посимвольно на первые четыре знака и на вторые четыре знака.
3) и перевести эти два числа в 10-ую систему исчисления в label2 и label3 соответственно
Плюс если есть возможность сделать что то вроде защиты от дурака, что бы в textbox были введены только числа или буквы 16-ой системы и что бы их было обязательно восемь, а не семь или девять, при этом что бы вылезало какое нибудь окошко со словами что нибудь вроде неправильно введено число.
Вот до чего я додумался (не практиковался года два в программировании) запихнул все в спойлер что бы не мешалось лишний раз
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            string k = textBox1.Text;
            int s = Convert.ToInt32(k, 16);
            label1.Text = Convert.ToString(s);
        }
 
        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                button1_Click(sender, e);
            }
        }
    }
как видно я могу все число перевести в 10-ую систему. однако как его разбить и именно первые четыре символа а затем вторые четыре символа конвертировать, не могу понять. Почитал про split но там если я правильно понял только с разделителями можно, а у меня целое число. Плюс наверное смогу выцепить каждый символ из массива string посимвольно наподобие
C#
1
2
3
4
5
string k = textBox1.Text;
            char m = k[0];
            char m1 = k[1];
            char m2 = k[2];
            char m3 = k[3];
но потом получается мне надо их снова объединить в новый string и уже его конвертировать? и как это провернуть не могу сообразить(((

пример что в итоге должно получиться.
Дано к примеру число в шестнадцатеричной системе исчисления 00914CCD введенное в textbox (прицепляю картинку)
в label1 преобразуем в десятичную и получаем 9522381
в label2 - 0091 преобразуем в 10-ую и получаем 145
в label3 4ССD ->19661
Очень надеюсь на Вашу помощь.
Миниатюры
Из 16 СС в 10 СС  
Вложения
Тип файла: rar WindowsFormsApp1.rar (51.5 Кб, 1 просмотров)
0
Лучшие ответы (1)
 Аватар для Aferuga
645 / 529 / 324
Регистрация: 20.05.2015
Сообщений: 1,471
11.07.2017, 05:04
Лучший ответ Сообщение было отмечено Ashkrop как решение

Решение

Цитата Сообщение от Ashkrop Посмотреть сообщение
Плюс если есть возможность сделать что то вроде защиты от дурака, что бы в textbox были введены только числа или буквы 16-ой системы и что бы их было обязательно восемь, а не семь или девять, при этом что бы вылезало какое нибудь окошко со словами что нибудь вроде неправильно введено число.
Использовать maskedTextBox как вариант. Либо свойству maxlength присовить 8, а при вводе обрабатывать как регулярное выражение.
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
        private void button1_Click(object sender, EventArgs e)
        {
            string k = textBox1.Text;
            int s = Convert.ToInt32(k, 16);
            label1.Text = Convert.ToString(s);
            int s1 = Convert.ToInt32(k.Substring(0,4), 16);
            label2.Text = Convert.ToString(s1);
            int s2 = Convert.ToInt32(k.Substring(4,4), 16);
            label2.Text = Convert.ToString(s2);
        }
1
0 / 0 / 1
Регистрация: 13.12.2014
Сообщений: 17
12.07.2017, 09:27  [ТС]
Aferuga, Спасибо большое! Совсем забыл про substrings. А защиту от дурака я сделал в виде
C#
1
2
3
4
string k = textBox1.Text;
            if (k.Length == 8)
            { ... } else
            {MessageBox.Show("Необходимо ввести 8 символов");}
C#
1
2
3
4
5
6
7
8
9
10
11
12
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((e.KeyChar >= '0') && (e.KeyChar <= '9'))
            {
                e.Handled = false;
 
            }
            if (!char.IsDigit(e.KeyChar) && e.KeyChar != 'a' && e.KeyChar != 'b' && e.KeyChar != 'c' && e.KeyChar != 'd' && e.KeyChar != 'e' && e.KeyChar != 'f' && e.KeyChar != '\b' && e.KeyChar != 8)
            {
                e.Handled = true;
            }
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru