Алгоритъм за събиране на числа с PZ
1. Подравняване на редовете на членовете: по-малкият ред се увеличава към по-голям, докато мантисата на по-малкото преобразувано число се измества надясно - денормализира се. Машината извършва изваждането на редовете на операндите. Знакът и модулът на разликата в реда определят коя от мантисата на членовете трябва да бъде изместена надясно и с колко цифри.
2. Събиране на мантиси на операнди по правилата за събиране на числа с FZ.
3. Нормализиране на мантисата на резултата, ако е необходимо. В този случайденормализиране надясно, когато най-значимият бит на двоичната мантиса е „0“, изисква мантисата да бъде изместена наляво и редът да бъде намален със съответния брой единици.Денормализиране наляво означава временно ORS на мантисата на сумата, но за разлика от числата с FD, тук е възможна корекция: изместване на мантисата с една цифра надясно и увеличаване на реда на сумата с единица.
При големи стойности на поръчките е възможно истинско препълване на битовата мрежа от страна на поръчките на числа с PT, когато стойността на поръчката се окаже толкова голяма, че не може да бъде поставена в битовете, разпределени за поръчката. Вероятността това да се случи обаче е малка.
Изместените поръчки се използват в повечето съвременни компютри за опростяване на процеса на подравняване на поръчки, сравняването им и ускоряване на различни операции.
В съвременните компютри се използва специален допълнителен код с кодиране с обратен знак за представяне на реда: “+” - “1”, “-” - “0”. В резултат на това редовете на числата се увеличават (в ESEVM с 2 6 =64, в SMEVM с 2 7 =128), което води до изместване на всички редове по цифровата ос в положителна посока.
Такива изместени порядъци се наричат характеристики и тъй като всички характеристики са положителни цели числа, тяхното алгебрично добавяне може да се извърши без предварителноанализ на знака.
Например, изобразете в 7-цифрената мрежа на EC компютъра характеристиката, съответстваща на поръчката =(-26), и проверете изместването на поръчката.
Пример 3.
Съберете числата A=30=11110(2) и B=72=1001000(2), като промените знаците и формата на представяне.
а) Операндите са отрицателни, добавете ги към OK във формата с FZ. M=27.
APK=1,0011110 | AOC=1,1100001 |
MIC=1.1001000 | WOK=1,0110111 |
(A + B) OK \u003d 1,0011001 | 11.0011000 |
(A + B) PC \u003d 1,1100110 (M \u003d 2 7) | |
A+B=-1100110(2)=-102(10) | (A + B) OK \u003d 1,0011001 |
б) Знаците на операндите A 0. Представете ги в битовата мрежа на условната машина във формата с PZ, при добавяне на мантиси използвайте DK.
Има осем цифри за подписани мантиси и четири цифри за подписани поръчки.
Мантиса | Поръчка |
А=1.1111000 | |
B=0,1001000 |
1. Подравняване на редовете на членовете, за които се изваждат с DC:
RV=1001 (RA-RV)DK=1110 (RA-RV)PC=1010=-210
Разликата в реда = (–2), следователно мантисата на числото A трябва да бъде изместена с 2 цифри надясно и съответно редът трябва да бъде увеличен с 2:
Мантиса | Поръчка |
А=1,0011110 |
2. Добавяне на мантиси като числа с FZ в DC:
1,1100010 = mA |
0,1001000 =mV |
10,0101010 = mA+mV |
3. Нормализиране на мантисата на резултата чрез изместване на един бит наляво при намаляване на реда с единица.