Последната редакция на тази книга е от 2021 година.

 

 

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  Събиране и изваждане на числа с ляво фиксирана запетая