УДК 681.142.2
Скоростные свойства алгоритмов умножения и деления
целых чисел произвольного размера <...> Н.Э. Баумана, Москва, 105005, Россия
Приведено описание подходов к оценке быстродействия алгоритмов
реализации операций умножения и деления целых чисел произвольной
размерности на основе подсчета количества операций, выполняемых
в ходе их обработки. <...> В исключительных ситуациях, когда требуется оперировать числами большего размера, необходима реализация алгоритмических
операций, выполняемых по специальным программам. <...> К таким операциям относятся умножение и деление целых чисел произвольного размера. <...> Оценка быстродействия этих алгоритмов составляет суть данного исследования. <...> В качестве единицы измерения быстродействия в
рамках этой работы используются операции — элементарные команды
из перечня машинных команд сложения, вычитания, сохранения,
сравнения и пересылки данных. <...> Для представления целых чисел произвольного размера используется модель, согласно которой каждая цифра целого числа располагается в отдельном байте, представляя все число как массив цифрбайтов [1]. <...> Поскольку возможно появление дополнительных старших
цифр при выполнении операции умножения, то десятичные цифры в
массиве располагаются в обратном порядке, что упрощает реализацию умножения простым заполнением цифр в следующих старших
байтах результата. <...> Старший байт массива числа должен содержать
код знака «+» или «–». <...> 2013
1
зуются функции ByteBits( ), ByteBitPrint( ), ByteBitMass( ) и InputAB( )
для преобразования обычного строкового вида вводимых чисел к
байтовым массивам хранения и отображения этих чисел. <...> Для реализации умножения целых десятичных чисел в байтовом представлении ниже приведена программа MI01, в
которой вычисляется произведение c = a ∗ b . <...> Числа a и b вводятся со
знаком с клавиатуры в функции InputAB( ). <...> В подключаемом файле
#include MultCarry.h находится функция MultCarry( ) для переноса
цифр, возникающих в результате поразрядного умножения. <...> В подключаемом <...>