Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции для студентов по ВМиС.docx
Скачиваний:
542
Добавлен:
24.02.2016
Размер:
790.23 Кб
Скачать

Выполнение арифметических операций над числами, представленными с фиксированной запятой.

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

  • сложение

  • сдвиг

  • передача

  • преобразование кодов.

Сложение выполняется по правилам сложения чисел в позиционных системах счисления.

То есть эта операция выполняется поразрядно, а возникающий в младших разрядах перенос направляется в старшие разряды.

Пример:

0,101101 1-ое слагаемое

+0,000101 2-ое слагаемое

________

0,101000 сумма

0,00101 перенос

________

0,100010 сумма

0,01 перенос

________

0,110010 сумма

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

Сдвиг

Различают два вида микрооперации сдвига:

  • логический сдвиг;

  • арифметический сдвиг;

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

Арифметический сдвиг выполняется над частью числа, часть сдвинутых разрядов теряется. (Очевидно, знаковый разряд должен исключаться из рассмотрения).

Передача.

Эта микрооперация предполагает, что некоторый код (число) записывается в соответствующее устройство и вытесняет тот код, который там находился до передачи.

Различают два вида передач:

  • запись (с разрушением ранее записанной информации);

  • чтение (без разрушения).

Преобразование.

Функция, выполняемая над передаваемыми числами, называется преобразованием. Чаще других в арифметических основах рассматривают инвертирование кода. Это поразрядная микрооперация , которая выполняется над всеми разрядами одновременно.

Коды, применяемые для изображения отрицательных чисел.

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

Прямой код.

Это естественное и наиболее привычное представление числа в следующем виде:

знак:

" + " соответствует 0

" - " соответствует 1

В цифровых разрядах пишется модуль положительного или отрицательного числа.

[X]пк - обозначим таким образом изображение числа " X " в прямом коде.

Рассмотрим диапазоны представляемых чисел:

X+min = 0,000....0 - изображение положительного нуля

X+max = 0,111....1 = 1 - 2-n

X-min = 1,111....1 = -(1-2-n)

X-max = 1,000....0 - изображение отрицательного нуля.

Таким образом, нуль имеет двоякое изображение.

Замечания:

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

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

  3. [X]пк * [Y]пк = sign Z. |Z|

|Z| = |X|*|Y|

Собственно умножение выполняется с применением микроопераций сложения и сдвига.

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

Вследствие ряда неудобств в ЭВМ операции вычитания, сложения чисел с разными знаками и деления в прямом коде практически не выполняются.