Проблема с большими целыми числами

Модераторы: Duncon, Naeel Maqsudov, Хыиуду, Игорь Акопян

Ответить
ichernov
Сообщения: 7
Зарегистрирован: 25 сен 2007, 10:30

25 сен 2007, 10:39

Turbo Pascal 7.0. Free Pascal IDE. Подскажите, как работать с большими целыми числами (больше 14 знаков). longint не хватает.
PS: Решается задача перевода чисел в разные системы счисления. Собственно сделал, но для надо большие числа переводить
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

25 сен 2007, 10:50

1) Создать свой тип, скажем Int128, разработать функции сложения, вычитания и т.д., в т.ч. вывод на экран.
2) Можно использовать типы с плавающей точкой, вроде Extended (80 bit). Ведь целые числа являются подмножеством действительных, не так ли?
It's a long way to the top if you wanna rock'n'roll
ichernov
Сообщения: 7
Зарегистрирован: 25 сен 2007, 10:30

25 сен 2007, 11:25

somewhere писал(а):1) Создать свой тип, скажем Int128, разработать функции сложения, вычитания и т.д., в т.ч. вывод на экран.
Спасибо
2) Можно использовать типы с плавающей точкой, вроде Extended (80 bit). Ведь целые числа являются подмножеством действительных, не так ли?
Спасибо. Однако:
1) Я собственно не такой спец по Паскалю
2) я использую станд функции Mod и др., которые работают только с целыми числами. Конечно можно написать и свои, но см.п.1
Видимо вариантов реализовать это малой кровью нет. Жаль
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

25 сен 2007, 11:35

Тогда юзай юнит для работы с большими числами. Найти можно где угодно. На форуме поищи, подобная тема уже была...
It's a long way to the top if you wanna rock'n'roll
ichernov
Сообщения: 7
Зарегистрирован: 25 сен 2007, 10:30

25 сен 2007, 12:04

somewhere писал(а):Тогда юзай юнит для работы с большими числами. Найти можно где угодно. На форуме поищи, подобная тема уже была...
Спасибо. Нашел:
Модуль SuperLong
Паскалевский модуль SuperLong (Slong.tpu), позволяющий работать с натуральными числами длиной до 7199 цифр. http://vilenin.narod.ru/Progs.htm
Не уверен, что меня спасет, но может пригодится другим
BBB
Сообщения: 1272
Зарегистрирован: 27 дек 2005, 13:37

25 сен 2007, 12:15

В Паскале есть еще такой тип comp.
Он с одной стороны относится к группе 80x87 floating point типов, а с другой стороны целочисленный (т.е. не содержит дробной части). И в хелп-е он описывается в топике Real types.

Диапазон значений:

Код: Выделить всё

 Type     │ Range               │ Digits │ Bytes
 comp     │ -9.2e18..9.2e18     │ 19-20  │  8
ichernov
Сообщения: 7
Зарегистрирован: 25 сен 2007, 10:30

25 сен 2007, 12:56

BBB писал(а):В Паскале есть еще такой тип comp....
кажется функцию Mod не поддерживает
ichernov
Сообщения: 7
Зарегистрирован: 25 сен 2007, 10:30

25 сен 2007, 21:45

спасибо всем, сделал через extendet, пока хватает
Ответить