Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБО№5.doc
Скачиваний:
9
Добавлен:
20.02.2016
Размер:
296.96 Кб
Скачать

2.5. Операции над числами с плавающей запятой

Сложение чисел с плавающей запятой: С = А + В.

А = 34,75 (10) =100010,11(2) ;

В = 18,125 (10) = 10010,001 (2) .

Операция выполняется в несколько этапов:

1) Нормализация прибавлений или запись с плавающей запятой А=М*q p:

А = 0.10001011*10110; В = 0.10010001*10101.

2) Выравнивание порядков слагаемых в сторону большего порядка. Увеличиваем порядок р в на одну единицу и мантиссу М в смещаем вправо на один разряд.

М в = 0.010010001; р в =110.

3) Выполняем операцию сложения. С = А + В

А = 0.100010110 10110

+ В = 0.010010001 10110

С = 0.110100111 10110

4) Нормализуем результат, если это нужно. В данном случае это не нужно потому, что старший разряд мантиссы равняется 1.

Результат: С = 0.110100111*10110(2) ; С = =52,875 (10)

  1. Умножение с младших разрядов мантиссы:

1101

х1011

1101

+1101

1101

10001111

С = 10001111(2) = 1*27+1*2 3 +1*2 2 +2+1=128+8+4+3 =143 (10).

2) Умножение со старших разрядов мантиссы:

1101

1011

1101

+ 1101

1101

10001111

С = 10001111(2) = 1*27+1*2 3 +1*2 2 +2+1=128+8+4+3 =143 (10).

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

Операция деления двоичных чисел в ЭВМ выполняется методом сложения делимого с дополнительным кодом делителя, а потом с остатком и восстановлением остатков, если остаток стал отрицательным числом, или без восстановления отрицательных остатков. Рассмотрим на примере процесс деления без восстановления остатков.

А = 25 (10) = 11001 (2); В = 5 (10) = 101 (2). С=А:В =25:5 =11001:101.

1) Смещаем делитель таким образом, чтобы в старшем разряде была цифра большая нуля.

В = 00.10100 n=2 (сдвиг делителя влево на два разряда).

При смещении на n разрядов влево, результат будет иметь (n+1) разрядов целых цифр до запятой.

2) Рассмотрим процесс деления мантисс в модифицированном коде:

00.11001 |00.10100 [B] д..к. = 11.01100

+ 11.01100 1 0 1

100.00101 1 переноса из знакового разряда отбрасывается

00.01010 Смещаем остаток влево на 1 разряд

+ 11.01100

11.10110

00.10100 Деление выполняется

+ 11.01100 без восстановления остатков

100.00000

Количество целых цифр результата равно 3.

При делении чисел с плавающей запятой порядки чисел вычитаются с помощью сложения в дополнительном коде: [p] д..к. =[p] д.к.-[p] д..к., а знак числа – сложением по модулю 2, как это выполнялось при умножении.

3. Варианты индивидуальных заданий

3.1.Составить первое число из следующей последовательности цифр:

- число собственной даты рождения;

- номер месяца собственной даты рождения;

- последние две цифры года собственной даты рождения.

Например:

дата рождения - 22 мая 1984 года

получим число - 220584

Второе число - 529 (для всех вариантов).

3.2. Перевести полученные два числа в двоичную, восьмиричную, шестнадцатиричную системы счисления.

3.3. Получить сумму этих двух чисел в двоичной, восьмиричной, шестнадцатиричной и десятичной системах счисления.

3.4. Результаты суммирования чисел в двоичной, восьмиричной, шестнадцатиричной системах перевести в десятичную систему счисления.

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]