Cele mai importante proprietăți ale codului numeric invers sunt:
· Adăugarea unui număr pozitiv C cu valoarea sa negativă în codul invers oferă așa-numita. unitate de mașină MEok = 1 | 11 ... 11, constând din unități în cifrele semnate și semnificative ale numărului;
· Zero în codul invers are un dublu sens. Poate fi fie un număr pozitiv - 0 00 00, fie un număr negativ 1 | 11 ... 11. Valoarea numărului negativ este aceeași cu cea a MEOK. Reprezentarea duală a lui 0 a fost motivul pentru care în computerele moderne toate numerele sunt reprezentate nu de invers, ci de un cod suplimentar.
Codul suplimentar al unui număr pozitiv coincide cu codul său direct. Pentru un număr negativ, codul adițional se formează prin obținerea codului invers și adăugarea unui (2 0 pentru numere întregi, 2-n pentru cele fracționate) la cifra minoră.
Proprietățile principale ale codului suplimentar:
· Adăugarea de coduri suplimentare a unui număr pozitiv C cu valoarea sa negativă dă un așa-zis. codul mașinii pentru codul suplimentar:
MEdk = Meok + 2 0 = 10 00 ... 00, adică numărul 10 (două) din cifrele numărului;
· Codul suplimentar este numit astfel deoarece reprezentarea numerelor negative este completarea codului direct al numerelor către unitatea de mașină MEdk.
Modificate coduri inverse și suplimentare
Codurile inverse și adiționale modificate ale numerelor binare diferă de codurile inverse și adiționale, respectiv de dublarea valorilor semnalelor digitale. În codurile inversate și adiționale modificate, nu se atribuie o singură dată decât două cifre la semnul numeric: "00" corespunde semnului plus, iar 11 înseamnă semnul minus. Orice altă combinație ("01" sau "10"), obținută în cifre semnate, este un semn de depășire a rețelei de evacuare. Adăugarea numerelor în codurile modificate prin nimic, nu diferă de adăugarea în returnarea uzuală și de codurile suplimentare.
Valoarea semnelor "01" indică o depășire pozitivă a grila de biți, iar "10" indică o depășire negativă. În prezent, în aproape toate computerele, rolul de cifre dublate pentru a fixa depășirea rețelei de biți este jucat de transferurile care merg către semnul și cifra semnată.
Adăugarea și scăderea numerelor cu un semn în codul suplimentar
Dacă ambele numere au o reprezentare n-bit, atunci suma algebrică va fi obținută în conformitate cu regulile adunării binare (inclusiv cifra semnului) dacă renunți la transferul posibil de la cea mai înaltă cifră. Dacă numerele aparțin unei game de date reprezentabile și au semne diferite, suma va fi întotdeauna în acest interval. O depășire poate apărea dacă ambele summanduri au aceleași semne.
Exemplul 1:
6 - 4 =?
6 - număr pozitiv cu codul 0110
-4 - număr negativ cu cod suplimentar 1100
(transportul este ignorat): 6 - 4 = 2.
-5 + 2 =?
2 - număr pozitiv cu codul 0010
-5 - număr negativ cu cod suplimentar 1011
Numărul cu codul 1101 este negativ, modulul acestui număr are codul 00112 = 310.
Operații aritmetice în codurile mașinilor.
Adăugare (scădere). Operația de scădere este efectuată la operația de adăugare prin conversia numerelor în codul invers sau adițional în conformitate cu tabelul.
Aici A și B sunt numere nonnegative. Parantezele din expresiile reprezentate indică înlocuirea operației de scădere cu operația de adăugare cu codul invers sau complementar al numărului corespunzător. Adăugarea de numere binare se efectuează secvențial, biți conform tabelului. La efectuarea adăugării cifrelor, trebuie respectate următoarele reguli:
1. Termenii trebuie să aibă același număr de cifre. Pentru a egaliza bitmapul sumei, se pot adăuga zerouri nesemnificative în partea stângă a întregii părți a numărului și zerourile nesemnificative din partea dreaptă a părții fracționare a numărului.
2. În plus, au participat și alte categorii semnate, precum și cele semnificative.
3. Transformările necesare de cod sunt efectuate cu schimbarea semnelor de numere. Atribuite zerouri nesemnificative schimba sensul lor atunci când convertirea în conformitate cu regula generală.
4. Când convertiți o unitate de transport de la cel mai înalt bit de semn, în cazul utilizării OK, această unitate este adăugată cu cea mai mică cifră numerică. Atunci când utilizați DK, unitatea de transfer este pierdută. Semnul rezultat este generat automat, rezultatul fiind reprezentat în codul în care sunt prezentate termenii originali.
Exemplul 1. Adăugați două numere: A10 = 7, B10 = 16.
Numerele inițiale au o adâncime de biți diferită, este necesar să aliniați grila de biți:
Adăugarea în codul invers sau complementar dă același rezultat:
Exemplul 2. Adăugați două numere: A10 = +16, B10 = -7 în OK și DC.
Tabelul necesită transformarea A + (-B), în care al doilea termen este transformat luând în considerare semnul
Când numerele au fost adăugate la OK și DC, s-au efectuat transferuri pentru descărcarea semnului și pentru descărcarea semnului. În cazul OK, transferul de la cifra semnată necesită o adăugare suplimentară a unității low order (clauza 4 a regulii). În cazul DC, acest transfer este ignorat.