Kiegészítő kód (ábrázolása)
Kiegészítő kód decimális szám
Ugyanez az elv alkalmazható a számítógépes ábrázolása decimális szám: minden számjegy X kisülési helyébe 9-X, és a kapott számot hozzáadjuk 1. Például, ha a négy számjegyű szám van helyettesítve -0081 9919 (9919 + 0081 = 0000, az ötödik kisülési kiadja).
Alkalmazásakor ugyanaz a gondolat, hogy a szokásos 10-adikus számrendszer ki (például, egy hipotetikus processzor alkalmazásával, 10-adikus számrendszer):
10-ung számrendszer
( "Normal" post)
10-ung számrendszer,
kiegészítő kód
Konvertálása egy kiegészítő kód
Átalakítás forward kiegészítő kód végre az alábbi algoritmussal.
- Ha a legjelentősebb (jel) bit számát rögzítik a közvetlen kódot értéke 0, akkor a szám pozitív, és nem átalakítást;
- Ha a legjelentősebb (jel) bit számának rögzített előre kód 1, akkor a szám negatív, a szám minden bit kivételével a jel, megfordítjuk. és 1-et adunk az eredmény.
Példa. -5 átalakítja negatív szám, rögzített közvetlen kódot, egy al-kódot. Közvetlen -5 negatív szám kódja:
Invert a biteket az összes, kivéve a jel, és így fordított kód (az első felül) -5 negatív szám:
Hozzáadás 1 az eredmény, és így kiegészítő kód (második felül) -5 negatív szám:
Átalakítani a negatív számok -5 rögzített kettesével, az 5 pozitív szám, rögzített közvetlen kódot használ egy hasonló algoritmust. nevezetesen:
Invert minden bit -5 negatív szám, és ily módon egy pozitív szám 4 az előre kód:
Hozzáadunk 1 az eredmény pozitív szám 5 get közvetlen kód:
És ellenőrizze, hajtogatott egy kiegészítő kód
A p-adikus számrendszer inverz számos átalakítást úgy végezzük, számos a kiegészítő kódot. Például, ha 5-hexadecimális szám rendszer, a szám a szemközti 00015 (110) egyenlő 44.445 (-110).
Végrehajtás transzformáció algoritmus kiegészítő kód (8 bites számok)
Előnyök és hátrányok
előnyök
- Általános tudnivalók (CPU) az összeadás, kivonás és jobbra shift előjeles és előjel nélküli egész szám (a különbség csak az aritmetikai zászlókat, hogy ellenőrizni kell, hogy ellenőrizzék a túlcsordulás eredményeként).
- Hiánya „mínusz nulla”.
hiányosságokat
- A negatív szám nem lehet olvasni a szokásos szabályait felfogás igényel speciális szakértelmet vagy számítási
- Egyes nézetek (például a BCD) vagy azok alkotórészei (például, a mantissza a lebegőpontos) további kódoló kényelmetlen
- Modul maximális száma nem egyenlő a legkisebb számú modulo. Például, nyolc-bites előjeles egész, a maximális szám: 12710 = 011111112. minimális szám: -12.810 = 100000002. Fennáll tehát tetszőleges számú ellenkező. Működés visszafordítását további ellenőrzést igényelnek.
Példa szoftver konverziós
Ha az adatok olvasni egy fájlt vagy a memória területet, ahol tárolódnak céloperandus (pl WAVE file), szükséges lehet átalakítani a bájt. Ha az adatok a 8 bit, az szükséges, hogy az értékek 128-255 negatív volt.
C # .NET / C stílusban
Bejelentkezés kiterjesztés (Engl Sign kiterjesztés.) - működését egy bináris szám, ami növelheti a kapacitást, hogy megtartsák a megjelölés és az érték. Ezt úgy végezzük, hogy a számjegyeket a legjelentősebb számjegyet. Ha a szám pozitív (MSB = 0), majd hozzáteszi, nullák, ha negatív (MSB 1) - egység.