- •© Вятский социально-экономический институт (всэи), 2012
- •1. Цели и задачи контрольной работы
- •2. Требования к результатам контрольной работы
- •3. Объем самостоятельной работы студента
- •4. Варианты контрольной работы
- •Задание 1
- •Преобразователи двоично-десятичных кодов и их синтез.
- •Методические материалы и указания по выполнению задания 3
- •Задание 2
- •Указания по выполнению задания 2 контрольной работы и методические материалы по теме
- •Задание 3
- •5. Выполнение и оформление контрольной работы
- •Структура контрольной работы:
- •6. Учебно-методическое обеспечение
- •Дополнительная литература
- •Задание №2 Тема: Представление чисел и арифметические операции в прямом, обратном и дополнительном кодах в машинах с плавающей запятой
- •610002 Киров, Казанская, 91а
Задание №2 Тема: Представление чисел и арифметические операции в прямом, обратном и дополнительном кодах в машинах с плавающей запятой
Произвести В МАШИНАХ С С ПЛАВАЮЩЕЙ ЗАПЯТОЙ алгебраическое сложение двоичных чисел А2СС +В2СС - в дополнительном коде, А2СС +С2СС - обратном коде , В2СС +С2СС - в модифицированном дополнительном коде, А2СС + D2СС - в модифицированном обратном коде.
А10СС=32.92, B10СС=11.3, C10СС= –0.919, D10СС= –0.14.
Разрядная сетка вычислительной машины:
для знака мантиссы – 2 разряда
для мантиссы – 21 разряд
для знака порядка – 2 разряда
для порядка – 7 разрядов
Решение. В ЭВМ сложение и вычитание всегда выполняется в модифицированном коде (если код совершенный), но, когда будем строить модель сложения в дополнительном и обратном коде, под знак порядка и мантиссы будем отводить не 2 разряда, а 1.
Переведём числа из 10СС в 2СС (учитываем, что для мантиссы выделен 21 разряд).
А10СС=32.92=32+0.92=[100000]2CС+[≈0.111010111000011]2CС (для мантиссы нужен 21 разряд – 6 даёт целая часть, 15 берём от дробной, помня, что для записи мантиссы число не усекается, а округляется).
|
0 |
92 |
|
|
|
1 |
1 |
84 |
9 |
1 |
04 |
2 |
1 |
68 |
10 |
0 |
08 |
3 |
1 |
36 |
11 |
0 |
16 |
4 |
0 |
72 |
12 |
0 |
32 |
5 |
1 |
44 |
13 |
0 |
64 |
6 |
0 |
88 |
14 |
1 |
28 |
7 |
1 |
76 |
15 |
0 |
56 |
8 |
1 |
52 |
16 |
1 |
12 |
Итог: А2СС=+100000.111010111000011=
=(+)0.100000111010111000011 x (+)10110.
B10СС=11.3= 11+ 0.3=8+2+1+0.3=
[1011]2CС+[≈0.01001100110011010]2CС
|
0 |
3 |
10 |
1 |
2 |
1 |
0 |
6 |
11 |
0 |
4 |
2 |
1 |
2 |
12 |
0 |
8 |
3 |
0 |
4 |
13 |
1 |
6 |
4 |
0 |
8 |
14 |
1 |
2 |
5 |
1 |
6 |
15 |
0 |
4 |
6 |
1 |
2 |
16 |
0 |
8 |
7 |
0 |
4 |
17 |
1 |
6 |
8 |
0 |
8 |
18 |
1 |
2 |
9 |
1 |
6 |
|
|
|
Итог: B2СС=+1011.01001100110011010=
=(+)0.101101001100110011010 x (+)10100.
C10СС= –0.919:
|
0 |
919 |
12 |
0 |
224 |
1 |
1 |
838 |
13 |
0 |
448 |
2 |
1 |
676 |
14 |
0 |
896 |
3 |
1 |
352 |
15 |
1 |
792 |
4 |
0 |
704 |
16 |
1 |
584 |
5 |
1 |
408 |
17 |
1 |
168 |
6 |
0 |
816 |
18 |
0 |
336 |
7 |
1 |
632 |
19 |
0 |
672 |
8 |
1 |
264 |
20 |
1 |
344 |
9 |
0 |
528 |
21 |
0 |
688 |
10 |
1 |
056 |
22 |
1 |
376 |
11 |
0 |
112 |
|
|
|
Итог: C2СС= –0.111010110100001110011=
= (–)0.111010110100001110011 x (+)100
D10СС= –0.14 (так как первые два разряда в 2СС нули, то 24 шага, а не 22):
|
0 |
14 |
13 |
0 |
88 |
1 |
0 |
28 |
14 |
1 |
76 |
2 |
0 |
56 |
15 |
1 |
52 |
3 |
1 |
12 |
16 |
1 |
04 |
4 |
0 |
24 |
17 |
0 |
08 |
5 |
0 |
48 |
18 |
0 |
16 |
6 |
0 |
96 |
19 |
0 |
32 |
7 |
1 |
92 |
20 |
0 |
64 |
8 |
1 |
84 |
21 |
1 |
28 |
9 |
1 |
68 |
22 |
0 |
56 |
10 |
1 |
36 |
23 |
1 |
12 |
11 |
0 |
72 |
24 |
0 |
24 |
12 |
1 |
44 |
|
|
|
Итог: D2СС= –0.00100011110101110000101=
= (–)0.100011110101110000101x (–)1010.
А2СС +В2СС - в дополнительном коде.
Так как у А2СС порядок 110, а у В2СС порядок 100, то выравниваем по А2СС (при сдвиге в отличие от перевода – отсекаем, а не округляем):
В2СС =(+)0.101101001100110011010 x (+)10100=
=(+)0.001011010011001100110 x (+)10110.
Так как А>0, B>0, то их дополнительные коды равны прямым. В ячейках машины:
А: 0 100000111010111000011 0 0000110
B: 0 001011010011001100110 0 0000110
A+B 0 101100001110000101001 0 0000110
Так как в знаковом разряде 0, то прямой код ответа равен дополнительному:
A2СС +B2СС=0.101100001110000101001 x (+)10110
А2СС +С2СС - обратном коде.
Так как у А2СС порядок 110, а у С2СС порядок 0, то выравниваем по А2СС: C2СС= (–)0.111010110100001110011 x (+)100=
=(–)0.000000111010110100001 x (+)10110 (6 младших разрядов при сдвиге отсекли).
Обратный код A>0 равен прямому. Учитывая, что С<0 (значит, надо инвертировать разряды мантиссы) в ячейках машины:
А: 0 100000111010111000011 0 0000110
С: 1 111111000101001011110 0 0000110
A+С 10 100000000000000100001 0 0000110
С учётом +1 в младший разряд мантиссы ответ такой:
A2СС +С2СС= 0.100000000000000100010 x (+)10110.
В2СС +С2СС - в модифицированном дополнительном коде.
В отличие от предыдущих двух примеров изображаем 2 знаковых разряда, а не 1.
Выравниваем порядки по В:
С2СС =(–)0.111010110100001110011 x (+)100=
=(–)0.000011101011010000111 x (+)10100.
Для В>0 модифицированный обратный код равен прямому, с учётом C<0 в ячейках машины:
C: 11 111100010100101111001 00 0000100
B: 00 101101001100110011010 00 0000100
C+B:100 101001100001100010011 00 0000100
Ответ: C2СС +B2СС=0.101001100001100010011 x (+)10100.
А2СС + D2СС - в модифицированном обратном коде.
Выравняем порядки по А:
D2СС =(–)0.100011110101110000101x (–)1010=
=(–)0.000000001000111101011 x (+)10110 (8 младших разрядов отсекаем)
A =A2СС, так как А>0. С учётом D<0 в ячейках машины будет:
А: 00 100000111010111000011 00 0000110
D: 11 111111110111000010100 00 0000110
A +D 100 100000110001111010111 00 0000110
C учётом +1 в младший разряд мантиссы ответ такой:
A2СС +D2СС=0.100000110001111011000 x (+)10110.
Приложение 3
Волченская Тамара Викторовна
ЭВМ и периферийные устройства
Методические указания
Ответственный за выпуск: Волченская Т.В.
Технический редактор:
Корректор: Журавлева О.Н.
Издательский орган ВСЭИ
