Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Сложение и вычитание





Обе операции выполняются по сходным алгоритмам.

X = 2mx * sign X.x1x2...xnY = 2my * sign Y.y1y2...ynZ = X ± Y = 2max(mx,my).sign Z.z1z2...zn

Операция выполняется следующим образом:

  1. Находится разность порядков: mx – my = Δ
  2. Производится выравнивание порядков, при этом если разность порядков положительна, то в качестве порядка результата берётся mx, а мантисса My сдвигается вправо на |mx– my| разрядов; еcли разрядность порядков отрицательна, то денормализуется мантисса Mx.
  3. Производится алгебраическое суммирование мантисс слагаемых.
  4. Выполняется нормализация влево или вправо на соответствующее число разрядов с необходимым исправлением порядка.

Пример:

порядок мантисса[mx]пк = 0.11 [Mx]пк = 0.1010[my]пк = 0.10 [My]пк = 0.1110Находим разность порядков: +00.11 = [mx]мок 11.01 = [-my]мок 1| 00.00 |_ _ 1 00.01 = [Δ]мок - разность порядковТак как m x > my, то: +00.1010 = [Mx]мок 00.0111 = [My]мок * 2-1[Z]мок = 01.0001 – переполнение 2-1 * [Z]мок = 00.1000 – нормализация max(mx,my) = [mx]мок = +00.11 [1]мок = 00.01 [mx]мок = 01.00 – переполнение порядкаZ = ∞

При выполнении операции сложения возможны следующие специфические случаи, называемые блокировками:

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

В качестве результата берётся максимальное число.

Пример:

[mx]ок = 0.101 [Mx]ок = 0.10111101[my]ок = 1.001 [My]ок = 0.10000001

Разность порядков:

+00.101 = [mx]мок 00.110 = [-my]мок

[Δ]мок = 01.011 – то есть это число 11 10, а в разрядной сетке мантиссы только 8 разрядов.

Поэтому операция блокируется, а результатом является число:

[mx] = 0.101 [Mx] = 0.10111101

Аналогичный случай может быть, когда разность порядков – отрицательна (отрицательное переполнение). В этом случае операция также блокируется, а результатом будет число с максимальным порядком.

Пример:

[mx]ок = 1.010 [Mx]ок = 1.10101011[my]ок = 0.110 [My]ок = 1.11111111

Разность порядков:

+ 11.010 = [mx]мок 11.001 = [-my]мок _______+1| 10.011 1 _______ 10.100 = [Δ]мок

То есть разность порядков меньше (-8).

Операция блокируется, а результатом будет число:

[my]ок = 0.110 [My]ок = 1.11111111






Date: 2016-05-14; view: 429; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию