Форум программистов, компьютерный форум CyberForum.ru

Длинные числа в С++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.72
SaHR
0 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 23
07.04.2011, 14:20     Длинные числа в С++ #1
Я так понемаю самое большое число long long тоесть до милиарда????
а если больше!
100000000000000000 такое(целое) как сни работать +1 или *2 ?????
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4945 / 3021 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
07.04.2011, 14:30     Длинные числа в С++ #2
Есть double, но он тоже ограничен.
Если нужны очень большие числа - пишите собственную реализацию (представление числа в виде массива и реализация операций) или используйте готовые библиотеки. Тогда длины чисел, по сути, ограниченны только объёмом свободной памяти. Другой вопрос - сколько будут выполняться операции на таких числах...
neske
1425 / 792 / 55
Регистрация: 26.03.2010
Сообщений: 2,728
07.04.2011, 15:14     Длинные числа в С++ #3
гуглите на тему "длинная арифметика".
Серёга,
1 / 1 / 0
Регистрация: 21.02.2011
Сообщений: 28
07.04.2011, 22:12     Длинные числа в С++ #4
neske, самый умный))))
Байт
 Аватар для Байт
14316 / 9147 / 1321
Регистрация: 24.12.2010
Сообщений: 16,716
07.04.2011, 22:19     Длинные числа в С++ #5
SaHR, Я поискал на форуме,
нашёл 3889 ответов
Uxxzz
9 / 9 / 0
Регистрация: 05.04.2011
Сообщений: 67
08.04.2011, 01:47     Длинные числа в С++ #6
ну если под long int выделяется 4 байта памяти и его диапазон от -2 147 483 648 до 2 147 483 647
под тип double выделяется 8 байтов памяти и его диапазон от 2.2e-308 до 1.8е308 есть еще один вариант..это long double под его выводиться 16 байт памяти, а вот диапазон забыл=)
Байт
 Аватар для Байт
14316 / 9147 / 1321
Регистрация: 24.12.2010
Сообщений: 16,716
08.04.2011, 08:50     Длинные числа в С++ #7
Цитата Сообщение от Uxxzz Посмотреть сообщение
ну если под long int выделяется 4 байта памяти и его диапазон от -2 147 483 648 до 2 147 483 647
под тип double выделяется 8 байтов памяти и его диапазон от 2.2e-308 до 1.8е308 есть еще один вариант..это long double под его выводиться 16 байт памяти, а вот диапазон забыл=)
Не думаю, что все эти варианты удовлетворят ТС. long int и даже long long ему явно мало. А long double
будет давать неточный результат (значащих-то цифр всего 14) и тоже маловат. Нет, если разговор пошел о таких числах, без длинной арифметики не обойтись. Самый простой (но не самый эффективный) путь - представить числа в виде строк десятичных знаков и вспомнить как нас учили считать столбиком в 3-м классе. При этом очень просто организовать их ввод и вывод.
Впрочем, повторяю, библиотек на эту тему - немеряно.
Uxxzz
9 / 9 / 0
Регистрация: 05.04.2011
Сообщений: 67
08.04.2011, 13:54     Длинные числа в С++ #8
а тип ansigned long double может подойти....????
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7954 / 4716 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
08.04.2011, 14:05     Длинные числа в С++ #9
Uxxzz, Смотря насколько длинные числа вам нужны...
Если реально большие - нет.
Ну и если unsigned long double вообще существует в природе.

Добавлено через 7 минут
gcc говорит что такого типа он не знает.
Собственно да, логично. signed/unsigned онли для интегральных типов.
prazuber
108 / 108 / 3
Регистрация: 29.04.2010
Сообщений: 240
08.04.2011, 15:12     Длинные числа в С++ #10
unsigned long double нормальный тип, студия нормально на него отреагировала. Другое дело, врядли ТС это подойдет, я бы посоветовал написать свой класс (число представить как массив цифр).
silent_1991
Эксперт C++
4945 / 3021 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
08.04.2011, 15:45     Длинные числа в С++ #11
PraZuBeR, мне 2010 студия сказала на unsigned long double "недопустимое сочетание спецификаторов типа".
И если уж заговорили о студии, то в ней double и long double - синонимы и "весят" по 8 байт каждый. Так что выигрыша не получится...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.04.2011, 16:13     Длинные числа в С++
Еще ссылки по теме:

Длинные числа. Умножение отрицательных C++
C++ Длинные числа в c++
Длинные типы данных C++
Std::getline и длинные строки C++
Считая что в двух строках находятся очень длинные целые числа, сформировать третью строку - сумму этих чисел C++

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

Или воспользуйтесь поиском по форуму:
Байт
 Аватар для Байт
14316 / 9147 / 1321
Регистрация: 24.12.2010
Сообщений: 16,716
08.04.2011, 16:13     Длинные числа в С++ #12
Uxxzz, Тут выбор простой. Или ты ограничиваешь числа, с которыми собираешься работать, или забываешь о типах встроенных и начинаешь работать с длинной арифметикой в одном из их многообразном представлении. Все эти long-long-long-doudle-long-unsigned-long - те самые припарки, которые мертвому, увы, не помогли/

Добавлено через 2 минуты
100000000000000000 такое(целое) как сни работать +1 или *2 ?????
Плохо, плохо сни будут работать.
Yandex
Объявления
08.04.2011, 16:13     Длинные числа в С++
Ответ Создать тему
Опции темы

Текущее время: 19:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru