Длинная арифметика: различия между версиями
[непроверенная версия] | [отпатрулированная версия] |
ArthurBot (обсуждение | вклад) м робот добавил: 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 существовал шестибайтовый эмулированный дробный тип — Real (в Delphi переименованный в Real48). Вычисления с ним также проводились с помощью длинной арифметики.
Это заготовка статьи об информационных технологиях и вычислительной технике. Помогите Википедии, дополнив её. |