рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Манипулирование с целыми числами произвольной длины

Манипулирование с целыми числами произвольной длины - раздел Математика, Составить Набор Процедур Манипулирования С Целыми Числами Произвольной Длины...

Составить набор процедур манипулирования с целыми числами произвольной длины. Процедуры должны обеспечивать: формирование и ввод целых чисел произвольной длины, сложение, вычитание, сравнение и умножение целых чисел. Работоспособность процедур продемонстрировать на демонстрационной программе.Использованные средства языка: Модуль, реализующий целые числа произвольной длины, и тестовая программа написаны на языке С++. Для представления целых чисел произвольной длины определен класс UNLIM. Операции над этими числами реализованы путем переопределения для класса UNLIM следующих операций: + (унарный и бинарный) - (унарный и бинарный) * == != < > <= >= << (операция вывода класса OSTREAM) . Структура данных: Абсолютная величина числа произвольной длины хранится в памяти в виде массива типа CHAR. В каждом элементе массива может находится число от 0 до 99, то есть два разряда всего числа. В нулевом элементе хранятся младшие два разряда, в последнем элементе - старшие два разряда.

Если число имеет нечетное количество разрядов, то в последнем элементе массива хранится один последний разряд, т.е. число от 0 до 9. Лидирующие нули в массиве не хранятся. Число 0 представлено массивом из одного элемента, в котором хранится 0. С целью минимизировать копирование и расход памяти класс UNLIM реализован так, что на одно представление абсолютной величины могут ссылаться несколько чисел, при этом ведется учет ссылок.

Объект класса UNLIM состоит из поля SIGN - знака числа и поля PV - указателя на дескриптор представления абсолютной величины.

Число 0 всегда имеет знак PLUS. Дескриптор представления абсолютной величины числа представляет собой объект структуры DESCRIPTOR и имеет следующие поля: body - указатель на массив, в котором хранится представление абсолютной величины числа; len - длина массива body[] в байтах; HowMany - количество ссылок на данное представление; Реализация операций сравнения: Из операций сравнения только < и != напрямую сравнивают числа, остальные операции выражены через эти две. При работе операций < и != сначала проверяются знаки и длины чисел, и только в случае их совпадения производится поразрядное сравнение чисел (в качестве разрядов здесь берутся целые байты - т.е. разряды в системе счисления с основанием 100). Реализация операций арифметики: Операция унарный + просто возвращает само число.

Операция унарный - возвращает новый объект класса UNLIM, который ссылается на то же представление модуля числа, что и аргумент, и имеет знак, противоположный знаку аргумента.

Операция бинарный + определена и для случаев, когда знаки операндов совпадают, и когда эти знаки различны. В первом случае знак результата соответствует знаку одного (любого) из операндов, а модуль результата является результатом сложения модулей операндов.При этом если количество разрядов первого операнда равно A, а второго - B, то количество разрядов операнда может быть либо max(A,B), либо max(A,B)+1, поэтому при выделении памяти под массив для модуля результата берется второе значение. Никакой оптимизации этого массива после сложения модулей операндов не делается, так как в данном случае потеря памяти на лидирующие нули может быть максимум 1 байт, и выгоднее сэкономить на скорости, чем на памяти.

В случае, когда знаки операндов различны, знак результата равен знаку операнда с максимальным модулем, а модуль результата получатся вычитанием модуля операнда с минимальным модулем из модуля операнда с максимальным модулем.

При этом под модуль результата выделяется массив длины, равной наибольшей из длин операндов, но после вычитания чисел он оптимизируется функцией optimize(), которая удаляет лидирующие нули (создает новый массив длины, необходимой для хранения модуля числа без лидирующих нулей, копирует в него все значащие разряды, переадресовывает ссылку дескриптора на этот массив и удаляет старый массив). Сложение и вычитание модулей аргументов производится в системе счисления с основанием 100. Операция бинарный - определена через унарный минус и бинарный плюс. Операция * производится по технологии, аналогичной умножению в столбик.

При этом все действия ведутся в системе счисления с основанием 100. Длина массива результата может быть равна либо сумме длин операндов, либо этой сумме минус 1. Эта ситуация аналогична той, которая была при сложении чисел с одинаковым знаком, и здесь тоже не делается оптимизации.

Операция << - просто операция вывода класса OSTREAM, определенная для класса UNLIM. Сначала она выводит если знак числа отрицательный, а затем само число поразрядно (по десятичным разрядам), начиная со старшего. При этом используется функция digit(number), которая возвращает значение десятичного разряда с номером number. Функция- конструктор unlim(char*) обрабатывает инициализацию символьной строкой.При этом распознаются следующие ошибочные ситуации: инициализация пустой строкой; недопустимый символ в строке; строка содержит знак, но не содержит значения.

Во всех этих случаях число инициализируется нулем. Функция- конструктор unlim(unlim&) обрабатывает инициализацию другим объектом класса UNLIM.

– Конец работы –

Используемые теги: Манипулирование, целыми, числами, произвольной, длины0.078

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Манипулирование с целыми числами произвольной длины

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Еще рефераты, курсовые, дипломные работы на эту тему:

Кластерный анализ Формирование целей реструктуризации Основные цели реструктуризации
На сайте allrefs.net читайте: "Кластерный анализ Формирование целей реструктуризации Основные цели реструктуризации"

Мотивация – это процесс побуждения себя и других к деятельности для достижения личных целей и целей организации
Теории мотивации разделяются на две категории содержательные и... Содержательные теории мотивации основываются на идентификации тех внутренних побуждений называемых потребностями которые заставляют людей...

Направления повышения эффективности коммерческой деятельности на основе теоретических основ управления целями и анализа управления целями
При этом неблагоприятные внешние факторы и сложное финансовое положение углубляется и тем, что отечественные товаропроизводители медленно переходят… В данном случае управление целями коммерческой деятельности осуществляется… Это комплекс предметов и методов, обеспечивающих максимальную выгодность любой торговой операции для каждого из…

2. Найти коэффициенты приведения длины и расчетные длины сжатых стержней.
На сайте allrefs.net читайте: 2. Найти коэффициенты приведения длины и расчетные длины сжатых стержней....

Тип ячейки определяет строение и свойства кристалла в целом, а свойства каждого из этих кристаллов определяет свойства всего кристалла в целом
Кристаллическое строение металлов... Металлы Ме являются поликристаллическими веществами т е они состоят из... Кристаллическое состояние твердое состояние вещества...

Действия над числами. Действия с действительными числами
Действия с действительными числами... Вычислить... а б...

ОФП. Цели и задачи. Специальная физическая подготовка. Профессионально-прикладная физическая подготовка. Спортивная подготовка. Цели и задачи
В основе общей физической подготовки может быть любой вид спорта или отдельный комплекс упражнений, например гимнастика, бег, бодибилдинг, аэробика,… Цели и задачи общей физической подготовки 1. Здоровье. Общая физическая подготовка нужна в первую очередь для укрепления здоровья.

Тема VI. Экономика страны как единое целое. Макроэкономическое равновесие, макроэкономическое неравновесие. Экономический рост
Система национальных счетов СНС это система учета достижений национальной экономики характеризующая результаты деятельности структуру и... Целью СНСявляется предоставление количественной информации о создании... СНС используется для макроэкономического анализа с целью изучения и совершенствования национальной экономики а также...

Планирование - умение предвидеть цели и результаты деятельности организации
Планирование умение предвидеть цели и результаты деятельности организации наряду с возможностью обеспечения необходимыми ресурсами выполнение... Преимущества... делает возможной подготовку организации к использованию будущих благоприятных условий...

Для этих целей используют различные химические вещества
В практике тушения пожаров наибольшее распрост ранение получили следующие принципы прекращения горения изоляция очага горения от воздуха или... Для этих целей используют различные химические вещества... Вода Огнетушащая способность воды обусловливается охлаждающим действием разбавлением горючей среды образующимися...

0.032
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам