Задание №2
Представить числа А и В в форме с плавающей запятой в нормализованном виде. Точность представления дробной части ЕД=2-5. Выполнить арифметические операции над числами согласно заданному варианту с использованием модифицированных кодов (пк, дк, ок). Результаты операций С записать в регистр результата RGС в прямом коде, определив его разрядность.
Дано:
А=-D6,C9(16)
В=86,64(10)
ЕД=2-5=0,031
Найти:
А) |А-В|(ок)
Б) |А+В|(дк)
Решение:
А)
Приведём исходные данные к форме операции сложения в кодах:
|А-В|(ок)=(-А) +(-В)=А(ок)+В(ок)=С
Приведём исходные данные в двоичную систему исчисления:
А(16)→А(2)
В(10)→В(2)
А=-D6,C9(16)=
А(2)=-1101
0110, 1100 1001
-В=-86,64(10)= В(2)=-1010110,10100(2)
Воспользуемся методом поразрядного уравновешивания:
n≥log286=7
64 32 16 8 4 2 1
1 |
0 |
1 |
0 |
1 |
1 |
0 |
,1 |
0 |
1 |
0 |
0 |
86=1010110
0,64*2=1,28 1
0,28*2=0,56 0
0,56*2=1,12 1
0,12*2=0,24 0
0,24*2=0,48 0
0,64=10100
Запишем слагаемые А и В в форме с плавающей запятой и в нормализованном виде.
АПЗН=2РА(-МАН)=28(-0, 1 1010 1101 1001) nА=13
ВПЗН=2РВ(-МВН)=27(-0, 1010 1101 0100) nВ=12
Уравняем порядки.
РС=max(РА , РВ) = РА =8
min РВК= РВ+1=8
MВК=28(-0,0 1010 1101 0100)
Представим мантиссы слагаемых в коде, в зависимости от знака.
МА(ОК)Н= 110 0101 0010 0110
МВ(ОК)Н=111 0101 0010 1011
Запишем коды мантисс в регистр и проведём сложение кодов мантисс, включая знаки.
МА(ОК) →RGA
МВ(ОК) →RGВ
МС(ОК) →RGС
-
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
RGA
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
RGВ
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
RGС
1
Диагностика операций.
Результат определим по знаковому разряду.
10→ МС(ОК), отрицательное переполнение.
РС=8+1=9
nC=13+1=14
Результат МС в прямом коде.
МС(ПК)=-10 0101 1010 1101
Результат операций записать в форме с плавающей запятой.
СПЗН=2Рс(-МСН)=29(-0, 10 0101 1010 1101)=20(-100101101,01101)=СПОЛ
Проверка результата.
А=-D6,C9(16)=-[13*161+6*160],[12*16-1+9*16-2]=-214,78515(10)
-В=-86,64(10)
Сожид=А-В=-214,78515-86,64=-301,42515
-
256
128
64
32
16
8
4
2
1
0,5
0,25
0,125
0,0625
0,03125
1
0
0
1
0
1
1
0
1
,0
1
1
0
1
СПОЛ=С(10)=-(256+32+8+4+1+0,25+0,125+0,03125)=-301,40625
ЕП=|-301,42515-(-301,40625)|=0,0189<ЕД – результат верен.
Б)
1. Приведём исходные данные к форме с использованием операции сложения в кодах:
|А+В|(дк)=(-А)+В=А(дк)+В(пк)=С
Представим мантиссы слагаемых в коде в зависимости от знака.
МА(ДК)Н= 110 0101 0010 0111
МВ(ДК)Н= 000 1010 1101 0011
Запишем коды мантисс в регистр и проведём сложение кодов мантисс, включая знаки.
МА(ДК) →RGA
МВ(ПК) →RGВ
МС(ПК) →RGС
-
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
RGA
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
RGВ
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
RGС
Диагностика операций.
Результат определим по знаковому разряду.
11→ МС(ПК), отрицательное переполнение.
РС=8+1=9
nC=13+1=14
Результат МС в прямом коде.
МС(ПК)=-0111111111010
Результат операций записать в форме с плавающей запятой.
СПЗН=2Рс(-МСН)=29(-0,0 0111111111010)=20(-1111111,11010)=СПОЛ
Проверка результатов.
СПОЛ≈СОЖИД
СПОЛ=С(10)=-(64+32+16+8+4+2+1+0,5+0,25+0,0625)=-127,8125
-
64
32
16
8
4
2
1
0,5
0,25
0,125
0,0625
0,03125
1
1
1
1
1
1
1
,1
1
0
1
0
СОЖИД =(-А)+В=-214,78515+86,64=-128,14515
ЕП=| - |= <ЕД – результат верен.