- •Исходные числа к выполнению задания 1
- •Исходные числа к выполнению задания 2
- •Исходные числа к выполнению задания 3
- •Делимого делителя частного
- •1 Этап. Для выполнения первого этапа наборы аргументов в сндф представляют их эквивалентами в двоичной форме:
- •Значения аргументов и логической функции к заданию 4
- •Стадии определения сокращенной формы логической функции
- •2 Этап. Переход от сокращенной формы логической функции к минимальной форме осуществляется при помощи импликантной матрицы (табл.7).
- •«Арифметические и логические основы вычислительной техники»
Исходные числа к выполнению задания 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
Циклический сдвиг вправо
При арифметическом сдвиге (влево или вправо) производится смещение кода без изменения позиции знака числа. Для положительных и отрицательных чисел, представленных в прямом коде, освобождающиеся при сдвиге разряды сетки заполняются нулями. Например, числовые коды [Х]пр = 1001101 и [Y]пр = 0100100 после арифметического сдвига на один разряд влево или вправо соответственно будут иметь вид:
[Х]пр = 1011010; [Х]пр = 1000110; [Y]пр = 0001000; [Y]пр = 0010010
При арифметическом сдвиге влево отрицательных чисел, представленных в дополнительном коде, младшие освобождающиеся разряды сетки заполняются нулями, а при сдвиге вправо старшие разряды заполняются единицами. Например, при сдвиге дополнительного кода отрицательного числа
[
Х]доп
= 11001101 на два разряда влево и вправо
соответственно получим:
[Х]доп = 10110100; [Х]доп = 11110011.
ЗАДАНИЕ 3
Вычислить S = A + B, представив слагаемые в формате байта с фиксированной точкой в дополнительном коде.
Вычислить Z = A + B, представив слагаемые в формате двух байт с плавающей точкой (старший байт для мантиссы, младший – для порядка числа).
Вычислить E = C + D, представив слагаемое в дополнительном двоично-десятичном коде 8421.
Вычислить П = А · В, используя алгоритм Бута, представив сомножители в формате байта с фиксированной точкой в дополнительном коде.
Вычислить Q = A : B, используя метод с неподвижным делителем без восстановления остатка, представив делимое и делитель в формате байта с фиксированной точкой.
Рассматриваемые числа А(10), В(10), С(10), D(10) приведены по вариантам в табл. 3. При выполнении задания необходимо показать ход решения задач.
Методические указания к выполнению задания
Операция алгебраического сложения при использовании дополнительных кодов чисел сводится к простому арифметическому сложению. Результат при этом оказывается представленным также в дополнительном коде. Если при сложении возникает единица переноса из знакового ряда, то она отбрасывается.
Например, складываются числа Х = 610 = 1102 и Y = - 310 = - 0112; А = - 710 = - 1112 и В = - 510 = - 1012 . Представим указанные числа в формате байта в дополнительном коде:
[Х]доп = 00000110; [Y]доп = 11111101; [А]доп = 11111001; [В]доп = 11111011.
Операции
сложения полученных кодов чисел будут
иметь вид:
Таблица 3
