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.

  1. 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;
  2. 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.

Kapcsolódó cikkek