Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
(ПИЭ)ЗМУ КР Арифметические и Логические основы.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
499.2 Кб
Скачать

Исходные числа к выполнению задания 2

Номер

варианта

А(2)

В(2)

С(2)

R

1

100101001

- 0.00011001

1111.0010

2

2

- 101

0.110011111

- 1111.10100

1

3

111100000

- 0.1100001

111.00101

5

4

- 110101001

0.10011101

- 11.01010

3

5

11000111

- 0.11111

1.10110

4

6

- 100110101

0.00001101

- 0.11111

2

7

1001100111

- 0.001111101

0.01011

4

8

- 111000101

0.110111101

- 0.00101

1

9

1011111001

- 0.0101101

0.00010

5

10

- 101100111

0.101111

- 0.00001

3

11

10111

- 0.000110101

10111.0100

4

12

- 1110011001

0.11100111

- 1011.10010

2

13

1011010111

- 0.000111

101.01101

3

14

- 10010001

0.101

- 10.10010

1

15

1011100001

- 0.110000101

1.01101

5

16

- 101100001

0,001101

- 0.10101

2

17

10111101001

- 0.011100111

0.01111

3

18

- 111000101

0.100011

- 0.00111

5

19

1011001111

- 0.01011

0.00011

1

20

- 10001110111

0.110110

- 1101.01010

4

21

101000001

- 0.00101

100.10101

3

22

- 1001111

0.0010110001

- 1001.01101

1

23

111

- 0.0110010111

0.10010

5

24

- 101111101

0.1111101

- 0.01100

2

25

111001010

- 0.01001

110.10010

4

26

- 110001000011

0.11111

- 0.01100

5

27

1000110111

- 0.001

0.11101

3

28

- 11011101

0.10001

- 10,000101

1

29

10001001

0.110110011

11011.1100

4

30

- 11001111001

0.001010

- 10111.0011

2

Если представляемое число положительное, то в знаковом разряде устанавливается 0, а если отрицательное, то 1. Модуль числа располагают в младших разрядах. Если при этом свободными остаются старшие разряды сетки, то их заполняют нулями. Например, в 8–разрядной сетке отрицательное целое число – 1100 2 можно представить в виде:

1

0

0

0

1

1

0

0

Значения модулей целых двоичных чисел в n–разрядной сетке не должны превышать значения 2 n-1 – 1. Если ограничение на максимальное значение модуля не выполняется, то происходит переполнение разрядной сетки, старшие разряды модуля теряются и появляется ошибка в представлении числа.

Распределение разрядов n–разрядной сетки при представлении правильных дробей в форме с фиксированной точкой имеет вид:

Обычно точку фиксируют перед старшим разрядом модуля. Модуль располагают в старших разрядах сетки. Максимальное значение модуля составляет 1 – 2 i-n. Если количество значащих цифр модуля меньше количества обозначенных для записи разрядов в сетке, то оставшиеся свободные младшие разряды заполняются нулями. В противном случае не поместившиеся в сетку значащие цифры модуля теряются. При этом возникает погрешность представления числа ∆, абсолютное значение которой меньше единицы младшего разряда сетки:

< 2 1 – n (5)

Например, в 8–разрядной сетке отрицательное число - 0.011100012 в форме с фиксированной точкой представляется в виде:

1

0

1

1

1

0

0

0

Для представления чисел в форме с плавающей точкой используется зависимость:

Х = ± М ∙ d ± p (6)

где Х – представляемое число; М – мантисса числа; d – основание системы счисления; p – порядок числа.

Например, с учетом выражения (6) число 12810 можно записать в виде нескольких представлений:

0.128 ∙ 10 3 = 1.28 ∙ 10 2 = 12.8 ∙ 10 1 = 128.0 ∙ 10 0 = 1280.0 ∙ 10 -1

С изменением порядка числа в большую или меньшую сторону точка в мантиссе соответственно перемещается вправо или влево, то есть «плавает» в изображении числа.

С целью однозначного представления числа введено понятие нормализованного числа. Нормализованным считается число, модуль мантиссы которого представляет собой правильную дробь, и первая цифра, стоящая справа о точки, должна быть отличной от нуля. Такое представление мантиссы позволяет сохранять в разрядной сетке большее количество значащих цифр, что повышает точность вычислений. Общая структура представления чисел в форме с плавающей точкой для n–разрядной сетки имеет вид:

В рассматриваемой сетке h разрядов отводится для представления нормализованной мантиссы, а t разрядов – для представления порядка числа. Знак числа совпадает со знаком мантиссы. Порядок числа представляется целым двоичным числом со знаком. Например, в 16–разрядной сетке выделено для мантиссы и порядка числа по восемь разрядов. При указанном распределении разрядов сетки необходимо записать следующие двоичные числа: Х = - 10110.11, Y = 0.0001100101. Представим числа в нормализованной форме: - 10110.11 = - 0.1011011 ∙ 2 5; 0.0001100101 = 0.1100101 ∙ 2 -3.

Полученные нормализованные числа в рассматриваемой разрядной сетке будут иметь соответственно вид:

1

1

0

1

1

0

1

1

0

0

0

0

0

1

0

1

Знак Модуль мантиссы Знак Модуль порядка

Числа порядка

0

1

1

0

0

1

0

1

1

0

0

0

0

0

1

1

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

Р см = Рд + 2 t-1 , (7)

где Рсм - значение смещенного порядка; Рд - значение действительного порядка; t – количество разрядов, используемых для размещения порядка в разрядной сетке.

Например, в 16–разрядной сетке, имеющей по восемь разрядов для размещения мантиссы и порядка чисел, запишем со смещенным порядком отрицательное двоичное число -0.00001111. Представим указанное число в нормализованном виде: -0.00001111 = -0.1111 ∙ 2 -4. С учетом выражения (7) значение смещенного порядка определится равным:

Р см = -4 + 2 8 - 1 = 124 10 = 1111100 2.

В итоге представление числа в рассматриваемой разрядной сетке будет иметь вид:

1

1

1

1

1

0

0

0

0

1

1

1

1

1

0

0

Знак Модуль Модуль

числа мантиссы смещенного порядка

Для выполнения арифметических операций числа в цифровых вычислительных устройствах кодируются специальными машинными кодами. Часто используются прямой, обратный коды и код дополнения (дополнительный код). Запись числа в прямом коде основана на представлении абсолютного значения числа с соответствующим знаком. Например, положительное число Х = +1101000 2 и отрицательное число Y = -0.0010101 2 в прямом коде имеют вид: [Х]пр = 01101000; [Y]пр = 10010101.

Обратный код положительного числа совпадает с изображением числа в прямом коде. Для получения обратного кода отрицательного числа нужно в знаковом разряде установить единицу, а в числовых разрядах произвести инверсию цифр. Например, числа Х = +0.0100101 2 и Y = -1010110 2 в обратном коде имеют вид: [Х]обр = 00100101; [Y]обр = 10101001.

Дополнительный код положительного числа совпадает с прямым кодом. Дополнительный код отрицательного числа получается из обратного кода путем прибавления единицы к младшему разряду. Например: Х = - 0.0111012 ; [Х]пр = 1011101; [Х]обр = 1100010; [Х]доп = 1100010 + 0000001 = 1100011.

Для перевода дополнительного кода отрицательного двоичного числа в прямой код нужно произвести инверсию цифр в числовых разрядах и к полученному результату прибавить единицу к младшему разряду. Например: [Х]доп = 10011011; [Х]пр = 11100100 + 00000001 = 11100101; Х = - 11001012.

Сдвиговые операции состоят в одновременном смещении цифр кода числа на фиксированное количество разрядов влево или вправо.

При логическом сдвиге происходит смещение в разрядной сетке всех цифр кода, включая и разряд знака. В освободившиеся при сдвиге разряды сетки устанавливаются нули, а не уместившиеся в сетке цифры числа теряются. Например, в 8–разрядной сетке код 10010111 при логическом сдвиге на два разряда влево и вправо соответственно будет иметь вид:

0

0

1

0

0

1

0

1

1

1

Логический сдвиг вправо

1 0

0

0

1

0

1

1

1

0

0

Логический сдвиг влево

Ц

0

1

0

0

1

1

0

1

Циклический сдвиг влево

0

0

1

1

0

1

0

1

Циклический сдвиг вправо

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

При арифметическом сдвиге (влево или вправо) производится смещение кода без изменения позиции знака числа. Для положительных и отрицательных чисел, представленных в прямом коде, освобождающиеся при сдвиге разряды сетки заполняются нулями. Например, числовые коды [Х]пр = 1001101 и [Y]пр = 0100100 после арифметического сдвига на один разряд влево или вправо соответственно будут иметь вид:

[Х]пр = 1011010; [Х]пр = 1000110; [Y]пр = 0001000; [Y]пр = 0010010

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

[ Х]доп = 11001101 на два разряда влево и вправо соответственно получим:

[Х]доп = 10110100; [Х]доп = 11110011.

ЗАДАНИЕ 3

  1. Вычислить S = A + B, представив слагаемые в формате байта с фиксированной точкой в дополнительном коде.

  2. Вычислить Z = A + B, представив слагаемые в формате двух байт с плавающей точкой (старший байт для мантиссы, младший – для порядка числа).

  3. Вычислить E = C + D, представив слагаемое в дополнительном двоично-десятичном коде 8421.

  4. Вычислить П = А · В, используя алгоритм Бута, представив сомножители в формате байта с фиксированной точкой в дополнительном коде.

  5. Вычислить Q = A : B, используя метод с неподвижным делителем без восстановления остатка, представив делимое и делитель в формате байта с фиксированной точкой.

Рассматриваемые числа А(10), В(10), С(10), D(10) приведены по вариантам в табл. 3. При выполнении задания необходимо показать ход решения задач.

Методические указания к выполнению задания

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

Например, складываются числа Х = 610 = 1102 и Y = - 310 = - 0112; А = - 710 = - 1112 и В = - 510 = - 1012 . Представим указанные числа в формате байта в дополнительном коде:

[Х]доп = 00000110; [Y]доп = 11111101; [А]доп = 11111001; [В]доп = 11111011.

Операции сложения полученных кодов чисел будут иметь вид:

Таблица 3