|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.03.2009, 02:33 | #1 |
Пользователь
Регистрация: 21.02.2009
Сообщений: 28
|
Обработка чисел с разрядностью, превышающую Extended
Доброго времени суток.
Возникла потребность с обработкой чисел с разрядностью, превышающую разрядность вещественных чисел типа Extended. Пока додумался до такого: определяется число multidigit типа байтового массива длиной (допустим) 1000 десятичных цифр + порядок числа. Сложение, вычитание, умножение и деление производится столбиком, как в младших классах (не в самом деле столбиком но принцип полностью повторяет действия при операциях в столбик), после этого производится вычисление/коррекция порядка результата. Но это жутко медленно! Вот здесь вроде есть про большие разрядности, но я не силён в СИ. Код совершенно не обязателен, можно только алгоритм (привязанный к Delphi или ассемблеру). В какой-то книжке встречал похожий алгоритм на ассемблере, там число состояло из двух extended чисел, но сейчас этой книжки нет, да и разрядность (18+18=36 десятичных знаков или около этого) не особо сильно увеличивается.
В споре рождается истина.
|
02.03.2009, 02:42 | #2 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
roach1967 Как я понимаю, вам нужны алгоритмы длинной арифметики.
Кое-что есть, например, здесь: http://algolist.manual.ru/maths/longnum.php Также в поисковике по запросу "Длинная арифметика" или "Длинные числа". Чтобы работало быстрее, можно хранить в элементе не одну цифру, а, скажем, 4. Существуют готовые реализации на разных языках.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[Error] Unit1.pas(40): Incompatible types: 'Integer' and 'Extended | BETONOMESHALKA | Общие вопросы Delphi | 9 | 15.03.2014 17:26 |
Обработка строки | Staxxx | Общие вопросы C/C++ | 2 | 03.01.2009 12:30 |
Integer and Extended,в чем дело? | Ciberal | Общие вопросы Delphi | 3 | 31.10.2008 19:06 |
Обработка изображения | Hollander | Мультимедиа в Delphi | 6 | 10.03.2008 14:21 |
вычисление суммы чисел, кратных 3 из последовательности, состоящей из 10 чисел, заранее заданных | Белка | Помощь студентам | 3 | 27.10.2007 11:53 |