powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как вводить огромные числа за границами int-ов
6 сообщений из 6, страница 1 из 1
Как вводить огромные числа за границами int-ов
    #33068289
_____...__..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уже не первый день думаю над этим...скажем человек ввел в черном консольном приложении такое:
54752485742987523987535449523345
И каждая цифорка этого числа должна войти в какой-то там массив..еслиб была бы строка символьная, то без проблем...(к примеру get-ом в cin)..
Но для чисел именно, не знаю как...
...
Рейтинг: 0 / 0
Как вводить огромные числа за границами int-ов
    #33068292
_____...__..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, еще одно...
Массив там какой-то, типа каждая цифра этого числа в один элемент массива..начиная с 0 и до конца чтом это число было в массиве.
Может быть возможно как-то из потока брать только определенное количество байтов..или может еще лучше есть способ..
...
Рейтинг: 0 / 0
Как вводить огромные числа за границами int-ов
    #33068296
Фотография XM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написать класс BigInteger, реализующий длинную арифметику, для которого перегрузить операции
operator >>(istream&, BigInteger&), operator <<(ostream&, BigInteger&), и естесвенно, +, -, *, /, % и т.д.

---
"Raffiniert ist der Herr Gott, aber boshaft ist Er nicht." Albert Einstein
...
Рейтинг: 0 / 0
Как вводить огромные числа за границами int-ов
    #33068403
_____...__..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хм...Ну и что? Всмысле, перегружу, но потом все равно ведь тот же поток, если не ошибаюсь..все равно действия с потоком..поток взял огромное число54752485742987523987535449523345 а как из этого потока каждую цифру этого числа засунуть в массив?..вообще как взять это число?..поток возьмет, но от него как получить...мне эту функцию написать, а уж в перегрузку ввода-вывода я ее потом засунуть без проблем наверное смогу...мда
...
Рейтинг: 0 / 0
Как вводить огромные числа за границами int-ов
    #33068419
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сначала у тебя это число будет в виде текста, так? Ну вот как текст его и расшифровываешь в свой собственный массив. Массив может быть любым, проще всего, наверное, один десятичный разряд исходного числа сохранять в одно-байтовой ячейке массива. Арифметику делаешь соотвественно сам - сложение будет значит выглядеть как сложение двух ячеек разных массивов, если результат больше десятки - сам взводишь флаг переноса и переходишь к следующему разряду. Ну и так далее.
Если не хочешь тратить память (один десятичный разряд - один байт памяти), можешь вместо десятичной использовать 256-и ричную систему, или хотя бы шестнадцатиричную :)
Можно хранить в одном байте два десятичных разряда, так называемая BCD система, кстати процессор имеет даже встроенные команды для работы с ней.
В общем, все очень просто :)
...
Рейтинг: 0 / 0
Как вводить огромные числа за границами int-ов
    #33068706
Фотография XM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hint: как ввести в массив из потока:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
#include<iostream.h>
#include<string.h>
 int main(void){
        char  s[ 60 ], ch, *p=s;
        int ar[ 60 ];
        do{
          ch=cin.get();
          if(ch>='0' && ch<='9') {
             ar[p-s]=ch-'0';
             *(p++)=ch;
          }
        }while(ch>='0' && ch<='9');
        *p= 0 ;
        cout << strlen(s) << "\n" << s;
 }
---
"Raffiniert ist der Herr Gott, aber boshaft ist Er nicht." Albert Einstein
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как вводить огромные числа за границами int-ов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]