Длинная арифметика: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
м робот добавил: cs:Výpočty s libovolnou přesností
Нет описания правки
Строка 24: Строка 24:
В большинстве языков высокого уровня существует арифметика длиной в два слова. Более длинную арифметику обычно приходится писать своими силами, по мере возможности [[оптимизация (программирование)|оптимизируя]] на [[язык ассемблера|ассемблере]] — в языках высокого уровня таких абстракций, как «регистровая пара» и «бит переноса», обычно нет.
В большинстве языков высокого уровня существует арифметика длиной в два слова. Более длинную арифметику обычно приходится писать своими силами, по мере возможности [[оптимизация (программирование)|оптимизируя]] на [[язык ассемблера|ассемблере]] — в языках высокого уровня таких абстракций, как «регистровая пара» и «бит переноса», обычно нет.


В [[Turbo Pascal]] существовал шестибайтовый эмулированный [[плавающая запятая|дробный тип]] — ''Real'' (в [[Delphi]] переименованный в ''Real48''). Вычисления с ним также проводились с помощью длинной арифметики.
В [[Turbo Pascal]] существовал шестибайтовый эмулированный [[плавающая запятая|дробный тип]] — ''Real'' (в [[Delphi (язык программирования)|Delphi]] переименованный в ''Real48''). Вычисления с ним также проводились с помощью длинной арифметики.


{{compu-stub}}
{{compu-stub}}

Версия от 03:27, 3 апреля 2010

Длинная арифметика — в вычислительной технике операции над числами, разрядность которых превышает длину машинного слова данной вычислительной машины. Частный случай — арифметика произвольной точности — относится к арифметике, в которой длина чисел ограничена только объёмом доступной памяти.

Основные потребители

  • Компьютеры низкой разрядности, микроконтроллеры. Например, микроконтроллеры серии AVR имеют 8-битный регистр и 10-битный АЦП — так что при обработке информации с АЦП без длинной арифметики не обойтись.
  • Криптография.
  • Математическое и финансовое ПО, требующее, чтобы результат вычисления на компьютере совпал до последнего разряда с результатом вычисления на бумаге. В частности, калькулятор Windows (начиная с 95).
  • «Спортивные» вычисления знаменитых трансцендентных чисел (π, e и т. д.) с высокой точностью. Высококачественные изображения фракталов.
  • Дисциплина в спортивном программировании.

Аппаратные средства для работы с длинной арифметикой

Строго говоря, для реализации арифметики произвольной точности от процессора требуется лишь косвенная адресация; в арифметике фиксированной точности можно обойтись даже без неё. Тем не менее, определённые функции процессора ускоряют длинную арифметику, одновремено упрощая её программирование.

Порядок слов

Независимо от порядка байтов машины, в длинной арифметике существует порядок слов (с начала или с конца). Чаще всего используют обратный порядок (с конца) — операции над длинными числами выполняются именно с конца.

Реализация в языках программирования

В большинстве языков высокого уровня существует арифметика длиной в два слова. Более длинную арифметику обычно приходится писать своими силами, по мере возможности оптимизируя на ассемблере — в языках высокого уровня таких абстракций, как «регистровая пара» и «бит переноса», обычно нет.

В Turbo Pascal существовал шестибайтовый эмулированный дробный тип — RealDelphi переименованный в Real48). Вычисления с ним также проводились с помощью длинной арифметики.