Cod suplimentar (reprezentare) - l

Cod suplimentar (reprezentarea)

În acest termen, există alte utilizări, vezi. Codul adițional.

Cod suplimentar (complement față de doi engleză, uneori, doi câte doi-complement ..) - cel mai comun mod de a reprezenta numere întregi negative în calculatoare. Acesta vă permite să înlocuiască funcționarea scădere în funcționarea plus, și de a face adunarea și scăderea la fel pentru numerele semnate și nesemnate decât simplifica arhitectura calculatorului. Codul adițional al unui număr negativ poate fi obținut prin inversarea numărului modulului binar (prima adăugare) și adăugarea la unitatea de inversare (a doua adăugare), sau prin scăderea numărului de zero.

Cod suplimentar (complement 2 a) din numărul binar obținut prin adăugarea de 1 la cel mai puțin semnificativ de complement la 1. [1]

număr binar complement 2 este definit ca valoarea obținută prin scăderea numărului de cea mai mare putere a două (de 2 N pentru complement N-bit 2 a).

Introducerea numerelor negative, în două lui

La înregistrarea numărului de cod suplimentar MSB este un pic semn. În cazul în care valoarea sa este 0, numărul binar pozitiv înregistrat în biți rămași. coincide cu codul de linie. Dacă numărul este înregistrat în termen este negativ, numărul tuturor biți sunt inversate și se adaugă la produsul 1. La numărul rezultat este adăugat Sr. (semn) bit egal cu 1.

Binar pe 8 biți, semnat număr întreg în complement față de doi poate fi orice număr întreg în intervalul -128-127. Dacă MSB este zero, atunci cel mai mare număr întreg care poate fi scris în biți rămași egal cu 7, adică 127.

Codul de reprezentare binară (8 biți)

Codul suplimentar pentru numerele zecimale

Același principiu poate fi utilizat într-o reprezentare calculator numerelor zecimale: pentru fiecare număr de cifre X se înlocuiește cu 9-X, și numărul rezultat se adaugă la 1. De exemplu, atunci când se utilizează un număr de patru cifre -0081 este înlocuit cu 9919 (9919 + 0081 = 0000, a cincea categorie ejectat).

Aplicând aceeași idee la obișnuit sistemul numeric de bază 10 va (de exemplu, un procesor ipotetic utilizează sistem numeric 10 ary):

sistem numeric 10 hexazecimal
( "Normal" post)

sistem numeric 10 hexazecimal,
cod suplimentar

Conversia la un cod suplimentar

Conversia numărul de cod suplimentar înainte implementat de următorul algoritm.

  1. În cazul în care numărul înregistrat în codul transmite este pozitiv, atunci este atașat la senior (semnul) bit egal cu 0, iar în această transformare se termină;
  2. Dacă numărul este înregistrat în termen este negativ, numărul tuturor biți sunt inversate și se adaugă la produsul 1. La numărul rezultat este adăugat Sr. (semn) bit egal cu 1.

Exemplu. -5 transforma număr negativ, înregistrat în codul direct, ori suplimentar. Codul Direct de -5 modulo luate:

Invert biții tuturor, obținându-se astfel de cod invers:

Adăugați 1 la rezultatul

Completați semnul lăsat singură cifră

Pentru transformarea inversă utilizează același algoritm. Și anume:

Invert biții tuturor, obținându-se astfel de cod invers:

Adăugați 1 la rezultat și să verificați pliat cu un cod suplimentar

Număr-p-adice

Sistemul număr invers-p-adice unei conversii număr se realizează într-un număr de cod suplimentar. De exemplu, dacă sistemul numărul 5-hexazecimal, numărul de opus 1000. (1) este egal cu 4444 (1).

Punerea în aplicare a transforma codul algoritm invers (pentru numere de 8 biți)

Avantaje și dezavantaje

avantaje

  • Același registru poate fi stocat ca număr n -bit pozitiv, și (n-1) -bit semnat întreg, cu formatul general pentru ambele operații de adunare, scădere și deplasare la stânga.
  • ambalarea mai convenabilă a numerelor în câmpul de biți.
  • Lipsa de "zero minus".

deficiențe

  • Codul adițional nu este evident pentru incepatori.
  • În formate complexe (cum ar fi punctul sau BCD plutitoare), cele mai multe beneficii sunt anulate.
  • Numărul maxim Modulul nu este egal cu cel mai mic număr de modulo. Exemplu: a semnat 8 biți întreg. Număr maxim: 12710 == 7F16 == 011111112. Numărul minim: -12,810 == 8016, cod adițional == 100 000 002, cod suplimentar. Prin urmare, există acolo pentru orice număr de opus. Operația de inversare poate necesita o verificare suplimentară.
  • Compara. Spre deosebire de plus, numărul de cod suplimentar nu poate fi comparat ca fara semn sau scade, fără a extinde bit. O metodă constă în compararea liniei de bază ca numere fără semn cu bitul de semn inversat.

conversie software EXEMPLU

În cazul în care datele sunt citite dintr-un fișier sau zonă de memorie, în cazul în care acestea sunt stocate în operandul destinație (de exemplu, fișierul WAVE), poate fi necesar pentru a converti bytes. În cazul în care datele sunt stocate în 8 biți, este necesar ca valorile 128-255 au fost negative.

C # .NET stil / C

literatură

Vezi ce „cod suplimentar (reprezentarea)“ în alte dicționare:

Întoarcere Codul (reprezentarea) - Reverse metoda cod de matematică de calcul, permițând scădeți un număr dintr-un alt folosind doar operarea pe lângă numerele naturale. Tehnica anterioară utilizată în calculatoare mecanice (mașini de adăugare). În prezent, ... ... Wikipedia

Codul Reverse - Întoarcere metoda cod de matematică de calcul, permițând scădeți un număr dintr-un alt folosind doar operarea pe lângă numerele naturale. Tehnica anterioară utilizată în calculatoare mecanice (mașini de adăugare). În prezent, ... ... Wikipedia

Numărul - În acest termen, există alte utilizări, vezi Numărul (valoare) .. Numărul conceptului de bază de matematică [1] pentru a fi utilizat pentru caracterizarea cantitativă, comparare și obiecte de numerotare. Originar din nou în societatea primitivă nevoile ... ... Wikipedia

Numărul (. Math) - a se vedea: Numărul (lingvistică) Numărul de abstractizare utilizată pentru a cuantifica proprietățile obiectelor .. Originar din nou în societate primitivă din nevoile de cont, conceptul de numărul schimbat și îmbogățit și dezvoltat într-o matematică importantă ... Wikipedia

Integer (tip de date) - un tip de date întreg întreg (. Engleză un Integer), în informatică este una dintre cele mai simple și cele mai comune tipuri de date în limbajele de programare. Acesta este utilizat pentru a reprezenta numere întregi. Setul de numere de acest tip este ... ... Wikipedia

sistem de numerație pozițional - sisteme de numerație în cultura sistemului indo-arab de numeratie arab indian Tamil Lao birmanez khmere Mongolă Thai din Asia de Est radix Chineză Japoneză Suzhou coreeană tije de numărare vietnameză ... ... Wikipedia

De tipul - (Integer) este una dintre cele mai simple și cele mai comune tipuri de date în limbajele de programare. Tipuri de Integer sunt împărțite în nesemnate (fără semn) și semnul (semnul). De regulă, intervalul de numere întregi determinată de numărul de octeți din ... ... Wikipedia

articole similare