IV.2.1
Събиране и
изваждане на
числа с дясно
фиксирана
запетая
В този раздел ще илюстрираме чрез множество числени примери изпълнение на операции от тип събиране (събиране и изваждане в допълнителен код), при което искаме да покажем всички особености на операциите с използване на машинните кодове.
ПРИМЕР
4. Да се
изпълни
операция
събиране Z=X+Y на
числата X=30, Y=45, които
са
представени
в разрядна мрежа
с дължина n=8[b],
в обратен
код.
След
като се
установи, че
няма
препълване, може
да се направи
проверка за
верността на резултата.
За целта е
необходимо
да представим
числото в
прав код,
който е
необходим за
да го
преобразуваме
в 10-чна бройна
система.
ПРИМЕР
5. Да се
изпълни
операция
събиране Z=X+Y
на числата X=-30, Y=45,
които са
представени
в разрядна мрежа
с дължина n=8[b],
в обратен
код.
ПРИМЕР
6. Да се
изпълни
операция
събиране Z=X+Y на
числата X=-30, Y=-45,
които са
представени
в разрядна мрежа
с дължина n=8[b],
в обратен
код.
Проверка:
ПРИМЕР
7.
Да
се изпълни
операция
събиране Z=X+Y на
числата X=30, Y=-30, които
са
представени
в разрядна
мрежа с дължина
n=8[b], в обратен
код.
ПРИМЕР
8.
Да
се изпълни
операция
събиране Z=X+Y на
числата X=96, Y=32, които
са
представени
в разрядна
мрежа с дължина
n=8[b], в обратен
код.
ПРИМЕР
9. Да се
изпълни
операция
изваждане Z=X-Y на
числата X=30, Y=45, които
са
представени
в разрядна
мрежа с дължина n=8[b], в
обратен
код.
ПРИМЕР
10.
Да
се изпълни
операция
изваждане Z=X-Y на
числата X=-30, Y=-45, които
са
представени
в разрядна
мрежа с дължина
n=8[b], в обратен
код.
ПРИМЕР
11. Да се
изпълни
операция
изваждане Z=X-Y на
числата X=30, Y=-45, които
са
представени
в разрядна
мрежа с дължина n=8[b], в
допълнителен
код.
ПРИМЕР
12. Да се
изпълни
операция
събиране Z=X+Y на
числата X=-30, Y=45, които са
представени
в разрядна
мрежа с дължина n=8[b], в
допълнителен
код.
ПРИМЕР
13. Да се
изпълни
операция
събиране Z=X+Y на
числата X=30, Y=-45, които
са
представени
в разрядна
мрежа с
дължина n=8[b], в допълнителен
код.
Проверка:
ПРИМЕР
14. Да се
изпълни
операция събиране Z=X+Y на
числата X=-30, Y=-45, които
са
представени
в разрядна
мрежа с дължина n=8[b], в допълнителен
код.
ПРИМЕР
15. Да се
изпълни
операция
събиране Z=X+Y на
числата X=30, Y=-30, които
са
представени
в разрядна
мрежа с дължина n=8[b], в
допълнителен
код.
ПРИМЕР
16. Да се
изпълни
операция
събиране Z=X+Y на
числата X=-96, Y=-32, които
са
представени
в разрядна
мрежа с дължина n=8[b], в
допълнителен
код.
Полученият
резултат е
отрицателното
число Х = -96-32 = -128,
което в прав
код не може
да бъде изобразено
в разрядна
мрежа с
посочената
дължина от 8
бита.
Възниква
пренос от
знаковия бит,
който има стойността
на истинския
знак на
числото. В
допълнителен
код обаче
числото е
представимо
и съответства
на
съдържанието
1 0000000.
ПРИМЕР
17. Да се
изпълни
операция
събиране Z=X+Y на
числата X=-96, Y=-96,
които са
представени
в разрядна
мрежа с дължина
n=8[b], в
допълнителен
код.
ПРИМЕР
18. Да се
изпълни
операция
изваждане Z=X-Y на
числата X=30, Y=45, които
са
представени
в разрядна мрежа
с дължина n=8[b], в допълнителен
код.
ПРИМЕР
19. Да се
изпълни
операция
изваждане Z=X-Y на
числата X=-30, Y=-45, които
са
представени
в разрядна мрежа
с дължина n=8[b], в допълнителен
код.
ПРИМЕР
20. Да се
изпълни
операция
изваждане Z=X-Y на
числата X=-30, Y=-30, които
са
представени
в разрядна мрежа
с дължина n=8[b], в допълнителен
код.
ПРИМЕР
21. Да се
изпълни
операция
събиране Z=X+Y на
числата X=30, Y=45, които
са
представени
в разрядна мрежа
с дължина n=8[b], в модифициран
обратен код.
ПРИМЕР
22. Да се
изпълни
операция
събиране Z=X+Y на
числата X=-30, Y=45, които
са
представени
в разрядна мрежа
с дължина n=8[b], в модифициран
обратен код.
ПРИМЕР
23. Да се
изпълни
операция
събиране Z=X+Y на
числата X=-30, Y=-45, които
са
представени
в разрядна мрежа
с дължина n=8[b], в модифициран
обратен код.
Проверка:
ПРИМЕР
24. Да се
изпълни
операция
събиране Z=X+Y на
числата X=111, Y=96, които
са представени
в разрядна
мрежа с
дължина n=8[b], в модифициран
обратен код.
ПРИМЕР
25. Да се
изпълни
операция изваждане Z=X-Y на
числата X=111, Y=111, които
са
представени
в разрядна мрежа
с дължина n=8[b], в модифициран
обратен код.
ПРИМЕР
26. Да се
изпълни
операция
събиране Z=X+Y
на числата X=-111, Y=-96, които
са
представени
в разрядна мрежа
с дължина n=8[b], в модифициран
обратен код.
ПРИМЕР
27. Да се
изпълни
операция
събиране Z=X+Y на
числата X=-30, Y=45, които
са
представени
в разрядна мрежа
с дължина n=8[b], в модифициран
допълнителен
код.
Проверка:
ПРИМЕР
28. Да се
изпълни
операция
събиране Z=X+Y на
числата X=-30, Y=-45, които
са
представени
в разрядна мрежа
с дължина n=8[b], в модифициран
допълнителен
код.
Проверка:
ПРИМЕР
29. Да се
изпълни
операция
събиране Z=X+Y на
числата X=-96, Y=-32, които
са
представени
в разрядна
мрежа с дължина n=8[b], в
модифициран
допълнителен
код.
Проверка:
Това
е
отрицателното
число Х=-128,
което в прав
код не може
да бъде
изобразено в
разрядна
мрежа с
посочената
дължина от 8
бита. Както се
вижда,
възниква
пренос от
знаковия
разряд, който
има
стойността
на истинския
знак на
числото. В
допълнителен
код обаче
числото е
представимо
и
съответства
на
съдържанието
(1 0000000).
Читателят
следва да
обърне
внимание на
факта, че
това препълване
не
може да се
открие с
помощта на
формула (95).
ПРИМЕР
30. Да се
изпълни
операция
изваждане Z=X-Y на
числата X=111, Y=96, които
са
представени
в разрядна
мрежа с дължина n=8[b], в
модифициран
допълнителен
код.
ПРИМЕР
31. Да се
изпълни
операция
изваждане Z=X-Y на
числата X=30, Y=45, които са
представени
в разрядна
мрежа с дължина n=8[b], в
модифициран
допълнителен
код.
Следващият
раздел е:
4.2.2
Събиране и
изваждане на
числа с ляво
фиксирана
запетая