Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Реализация методами объектно-ориентированного программирования сверхдлинной целочисленной арифметики




 

Диапазон чисел, используемый в задачах криптографии, доходит до нескольких сот и тысяч десятичных цифр. Такой диапазон чисел не соответствует базовым типам данных современных компьютеров. Число, которое состоит из несколько сот (тысяч) десятичных знаков, нельзя записать как единый объект в базовое устройство компьютера. Компьютерное представление таких чисел и операции над ними реализуются в виде программ.

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

Представление целого числа а в системе счисления с основанием В имеет вид

а = an -1 Bn -1 + an -2 Bn -2 +…+ a 1 B + а 0,

где 0 ≤ аi < B.

Данное представление целого числа аналогично представлению полинома степени n - 1:

а (x) = an -1 xn -1 + an -2 xn -2 +…+ a 1 x + а 0

с коэффициентами ai, 0 ≤ ai < B.

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

Сверхдлинное целое число хранится в виде массива цифр. Цифры используются из системы счисления. Применяется десятичная система счисления и её степени (десять тысяч, миллиард), либо двоичная система счисления.

Операции над числами длинной арифметики производятся с помощью "школьных" алгоритмов сложения, вычитания, умножения, деления столбиком, или алгоритмов быстрого умножения: быстрое преобразование Фурье и алгоритм Карацубы.

Для поддержки отрицательных чисел вводится дополнительный флаг "отрицательности" числа или дополняющие коды.

Сформулируем основные алгоритмы для выполнения арифметических операций с большими целыми числами.

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных