Большие числа в Паскале (Delphi)

Могу ли я работать с большими числами (более 10^400) встроенным методом в Delphi?


person regexp    schedule 28.08.2010    source источник


Ответы (3)


Не встроен, но вы можете проверить MPArith для вычислений с произвольной точностью. .

person Will A    schedule 28.08.2010
comment
Рад был помочь - наслаждайтесь своим числом! - person Will A; 28.08.2010
comment
@HMcG - Спасибо, надеюсь, они хорошо вам послужат! - person Will A; 01.06.2011

Существует также библиотека Delphi BigInt на SourceForge. Однако я не пробовал, но включил для полноты картины.

person Gerry Coll    schedule 29.08.2010

Вы можете реализовать свои собственные процедуры работы с большими числами, используя перегрузку операторов Delphi.

Например, сложение, вычитание, умножение и деление.

Intel также добавила новые инструкции для умножения и, возможно, для деления в своем последнем дизайне чипа, который выйдет в ближайшем будущем.

Одна из этих инструкций называется: mulx

Intel упоминает несколько потоков переноса, которые также позволяют ускорить умножение.

В x86 уже было вычитание с заимствованием и сложение с переносом, так что теперь эти новые инструкции делают более или менее то же самое для длинного умножения и деления и т. д. ... есть два метода выполнения умножения, и, очевидно, используя оба, это становится возможным.

В будущем Delphi, вероятно, будет поддерживать и эти новые инструкции, что может сделать программирование чем-то вроде этого более интересным.

На данный момент эти 4 основные операции могут привести вас куда-то... или, возможно, никуда.

Это немного зависит от того, что вы хотите сделать... какая математика? просто базовая математика, такая как add/sub/mul/div

Или более сложные математические операции, такие как косинус, синус, тангенс и другие математические функции.

Насколько я знаю, перегрузка операторов доступна для записей... Я смутно припоминаю, что она могла быть добавлена ​​и к классам, но пока не принимайте это к сведению.

Раньше при перегрузке операторов возникала ошибка при преобразовании между типами... но она была решена в более поздних версиях Delphi, так что все должно быть хорошо.

person Skybuck Flying    schedule 07.06.2014