Відкрити головне меню

Довга арифметика, в обчислювальній техніці, операції над числами, розрядність яких перевищує довжину машинного слова даної обчислювальної машини[джерело?]. Окремий випадок — арифметика довільної точності — відноситься до арифметики, в якій довжина чисел обмежена лише обсягом доступної пам'яті.

Зміст

Сфери використання

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

Апаратні засоби для роботи з довгою арифметикою

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

Порядок слів

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

Реалізація в мовах програмування

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

У Turbo Pascal існував шестибайтовий емулюючий дробовий тип — RealDelphi перейменований в Real48). Обчислення з ним також проводилися за допомогою довгої арифметики.