Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Перевод десятичных чисел в двоичные

Ответить
Настройки темы
C/C++ - [решено] Перевод десятичных чисел в двоичные

Пользователь


Сообщения: 86
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте. Я пишу программку для перевода чисел.



Её суть - пользователь открывает текстовый файл, в котором содержится число (оно отображается в левом richTextBox1). При нажатии кнопки это число должно перевестись в двоичное и отобразиться в правом richTextBox2.
Я не могу реализовать именно перевод числа. Буду благодарен, если Вы мне поможете

Отправлено: 13:58, 29-05-2011

 

Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Artesmann, Я в тебя верю.
Раз, Два

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 15:32, 29-05-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 86
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата lxa85:
Artesmann, Я в тебя верю.
Раз, Два »
Спасибо, но я совсем недавно начал изучать С++, и мне трудно использовать теорию на практике, так сказать. В интернете я нашёл несколько алгоритмов по переводу чисел из из 10-ой в 2-ую СС, но они все выполнены в консольных приложениях. В данном случае у меня проблема в том, что не понимаю, как число из richTextBox1 перевести в 2-ую СС, ведь, если я не ошибаюсь, и числа и текст в richTextBox1 имеют тип String?

Вообщем, я написал:

private: System::Void richTextBox1_TextChanged(System::Object^ sender, System::EventArgs^ e)
{
int text1;
text1 = Convert::ToInt32(richTextBox1->Text);
}

Как я понимаю, число введеное в richTextBox1 содержится в переменной text1 и это переменная типа int. Как же мне теперь перевести это число в 2-ую СС и вывести его в richTextBox2?

Последний раз редактировалось Artesmann, 29-05-2011 в 18:42.


Отправлено: 15:59, 29-05-2011 | #3


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


44 ^10 переведём в двоичную систему:

Код: Выделить весь код
44 делим на 2. частное 22, остаток 0
22 делим на 2. частное 11, остаток 0
11 делим на 2. частное  5, остаток 1
 5 делим на 2. частное  2, остаток 1
 2 делим на 2. частное  1, остаток 0
 1 делим на 2. частное  0, остаток 1
Частное равно нулю, деление закончено. Теперь записав все остатки снизу вверх получим число 101100 ^2

Если в RichEdit1 цифры представлены по принципу: одна строка - одно число, то так получится
Код: Выделить весь код
// Производим расчёт по нажатии на кнопку------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   int number, chastnoe, ostatok;
   String bite = ""; // Сюда будем заносить остатки (итоговое байтовое число)
   for(int i = 0; i < RichEdit1->Lines->Count; i++){ // Проходим циклом по строкам RichEdit
      chastnoe = number = RichEdit1->Lines->Strings[i].ToInt(); // Присваиваем число переменной, приведя его к целому типу
      bite = ""; // Очищаем переменную хранящую "байтовое" число
      while(chastnoe != 0){ // Пока частное не равно нулю, т.е. пока число делится
         ostatok = chastnoe % 2; // вычисляем остаток\байт
         chastnoe /= 2; // с каждым вычислением байта уменьшаем число на два
         bite += ostatok; // Аккумулируем байты
        }
      RichEdit2->Lines->Add(String(number) + " = " + bite); // Выводим результат
     }
}
//---------------------------------------------------------------------------
Так, что-то уже и я запутался.

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Последний раз редактировалось Drongo, 30-05-2011 в 13:39. Причина: упс, закосячил


Отправлено: 13:00, 30-05-2011 | #4


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Код: Выделить весь код
#include "strutils.hpp" // Подключаем. Нужно для функции ReverseString()
...
...
...
// Производим расчёт по нажатии на кнопку------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   int number, chastnoe, ostatok;
   String bite = ""; // Сюда будем заносить остатки (итоговое байтовое число)

   // Инициализируем RichEdit1 какими-то значениями, от 1 до 100
   for(int i = 1; i < 100; i++)
      RichEdit1->Lines->Add(i);

   for(int i = 0; i < RichEdit1->Lines->Count; i++){ // Проходим циклом по строкам RichEdit
      chastnoe = number = RichEdit1->Lines->Strings[i].ToInt(); // Присваиваем число переменной, приведя его к целому типу
      bite = ""; // Очищаем переменную хранящую "байтовое" число
      while(chastnoe != 0){ // Пока частное не равно нулю, т.е. пока число делится
         ostatok = chastnoe % 2; // вычисляем остаток\байт
         chastnoe /= 2; // с каждым вычислением байта уменьшаем число на два
         bite += ostatok; // Аккумулируем байты
        }
      RichEdit2->Lines->Add(String(number) + " = " + ReverseString(bite)); // Выводим результат
     }
}
//---------------------------------------------------------------------------

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:39, 30-05-2011 | #5


Пользователь


Сообщения: 86
Благодарности: 0

Профиль | Отправить PM | Цитировать


Drongo, спасибо большое

Отправлено: 19:41, 30-05-2011 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Перевод десятичных чисел в двоичные

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - Последовательность чисел denver-312 Программирование и базы данных 7 02-01-2008 20:54
VBA - Перевод чисел в текст прописью Goshar Программирование и базы данных 2 22-12-2007 16:00
Генератор случайных чисел Murrey Хочу все знать 3 22-08-2006 13:00
сортировка чисел slaine Вебмастеру 12 18-02-2006 20:17
Генерирование случайны чисел в С++ Belka007 Программирование и базы данных 12 23-11-2003 22:19




 
Переход