§ 1.3  Операция аритметическо изваждане

Operation arithmetic subtraction

 

 

      Операция аритметическо изваждане е двуместна операция и има два операнда: X – умаляемо; Y - умалител. Резултатът Z се нарича разлика и се определя чрез операция събиране, т.е. разликата е такова число, чиято сума с умалителя е равна на умаляемото. Операцията е двуместна и тук ще бъде означавана така  XY=Z.  Когато операндите са числа без знак, операция изваждане е не винаги възможна. За разлика от предходната операция, в общия случай тази може да доведе до резултат, който е число със знак, например (3-5=-2). Изпълнението на операция изваждане върху две многоразрядни числа е определено аналогично на това при операция събиране, като поразрядно:

което се изпълнява в съответствие с дефиниционната таблица на елементарните количества. Известно е, че анализът на разликата от съответните коефициенти на полиномите изявява два поразрядни резултата – функция на разликата zi и функция на заема q.pi.

      Изваждането на елементарни количества, както и на многоразрядни числа е определено като операция само при условие, че е изпълнено неравенството

| X |      | Y |                        (1.3.1)

      Ето защо, дори когато операндите са числа без знак, разликата следва да се приема като число със знак, което дава известни основания операцията да се нарича в общия случай алгебрическа. Ако модулът на умаляемото е по-голям от модула на умалителя, т.е. когато условие (1.3.1) е изпълнено, изваждането се извършва според дефиниращата таблица на бройната система – изваждане на модулите |X|–|Y|, в резултат на което в разрядната мрежа се получава модулът на разликата |Z|, т.е. изпълнението е по определение. Само в този случай резултатът може да се интерпретира по-нататък като число без знак, тъй като Z>0.

      Когато модулът на умаляемото е по-малък от този на умалителя |X|<|Y|, операцията не е определена, т.е. резултатът като число без знак не съществува. Според правилата за алгебрическо изваждане обаче, операндите могат да сменят местата си и да се извърши изваждането |Y|–|X| по определение, като при това полученият резултат следва да се разглежда като число със знак минус, т.е. Z<0.

      И в двата случая на изваждане може да се твърди, че модулът на разликата |Z|, е по-малък от модула на по-големия операнд (разглеждан като число без знак). Това означава, че модулът на разликата е представимо в разрядната мрежа число, т.е. препълване не е възможно да настъпи. Това определя при изваждане на числа без знак признакът V да има стойност нула V=0.

      Ако изваждането обаче не се извършва с предварителен анализ на съотношението на модулите, в случай на отрицателен резултат, може да се говори за препълване отляво, т.е. за отрицателно препълване, което обаче е безсмислено в контекста на числата без знак. Какво все пак се получава в разрядната мрежа? Ако е било в сила неравенството |X|³|Y|, в разрядната мрежа ще остане |Z|, който следва да се интерпретира като положително число. Ако е било в сила обаче неравенството |X|<|Y|, в процеса на изваждане при формиране на цифрата на разликата, в позицията на най-старшата значеща цифра на умаляемото или от съседната по-старша позиция, ще бъде поискан заем, който е от разряд извън разрядната мрежа, т.е. от разряда C. В този смисъл, при операция изваждане на числа без знак, разрядът C ще отбелязва възникването на заем вън от разрядната мрежа. Този факт може да се използва при изваждане на дълги числа (аналогично на операция събиране) чрез паралелно-последователния метод на обработка.

      В случай на изваждане на представими в разрядната мрежа числа и отрицателна разлика, оставащата в разрядната мрежа последователност от цифри не е модулът на очаквания резултат.

      Например, ако изваждането (00230047) се извърши с предварително сравнение на модулите и смяна на местата на операндите, ще бъде изпълнена операцията (00470023), която ще даде модула на резултата: 0024. Истинската разлика е числото Z=24, чийто знак следва да бъде съобразен логически. Ако обаче се пристъпи към изваждане без смяна на местата на операндите, ще се получи следният резултат:

където последователността

  ,

т.е. не е модулът на резултата, а в бит C е фиксиран заем, което по-горе в примера, е означено с точка.  След няколко подобни примера лесно може да се обобщи, че получената при това изпълнение на операцията последователност

* ,

е допълнението на модула на търсената разлика |X-Y| до числото qn (в примера 104 = 10000). И наистина

      Тези съждения обосновават възможността да бъде получен истинският модул на разликата, ако се реши спрямо неизвестния модул следното уравнение

      От казаното се разбира, че техническото реализиране на операция изваждане по определение е значително по-сложно. Посочените й особености обаче показват, че вероятно има път към нейното опростяване и този път ще бъде подробно разгледан по-късно.

 

 

Следващият раздел е:

§ 1.4  Операция умножение и операция деление  ( Operation multiplication and operation division )