Reprezentarea numerelor în calculatoare

În computerele digitale informațiile numerice sunt prezentate în două forme:

- cu un punct fix (formă naturală);

- cu un punct de plutire (formă exponențială).







Atunci când reprezintă numere de puncte fixe se înțelege că poziția punctului împărțirea numărului de părți întregi și fracționare, în mod constant pentru toate numerele. Această formă este cea mai simplă, naturală, dar are o gamă mică de reprezentare a numerelor și, prin urmare, nu este întotdeauna acceptabilă în calcule. În computerele moderne este utilizat sub formă naturală, de exemplu, pentru a reprezenta numere întregi (partea fracționară este întotdeauna absentă) sume (partea fracționară este întotdeauna patru cifre).

Reprezentarea în virgulă mobilă a oricărui număr N în formă generală este descrisă de următoarea formulă:

unde ± M este mantisa (parte fracționată) a numărului; p - baza sistemului numeric; k ± - ordine (număr întreg), în timp ce un semn pozitiv al mantisei și ordinul poate fi omisă, și specificând ordinea în caracter zecimal este acceptat să utilizeze E. De exemplu, numărul zecimal de punct fix 123.45 poate fi reprezentat sub forma unui punct plutitor ca 0,12345 × 10 3. sau, după cum se obișnuiește, 1,2345E +02. Această formă de reprezentare are o gamă largă de numere și este cea mai importantă din computerele moderne.

Pentru a reprezenta numere pozitive și negative în mașini, se utilizează coduri speciale: directe, inverse și suplimentare. Și ultimele două vă permit să înlocuiți incomodul pentru operarea calculatorului de scădere prin operația de adăugare cu un număr negativ; codul suplimentar furnizează o execuție mai rapidă a operațiilor cu ajutorul agregatului, prin urmare este mai des folosit în computere. Luați în considerare regulile de codare pe exemplul de întregi.

Pentru a traduce un număr într-un cod direct, semnul numeric este omis, iar cifra de vârf (semnată) este setată la 0, dacă numărul este pozitiv și 1 dacă numărul este negativ. Bitii de ordin mic ai codului reprezintă o reprezentare binară a modulului de număr. Bitii rămași ai codului sunt umpluți cu zerouri. Rețineți că traducerea numerelor pozitive într-un cod înainte, înapoi și complementar nu modifică imaginea acestor numere (Tabelul 3).







Pentru a traduce un număr negativ într-un cod invers, toate cifrele codului direct, cu excepția celei semnate, trebuie să fie inversate (înlocuiți zerouri cu cele, iar cele cu zerouri).

Pentru a traduce un număr negativ într-un cod suplimentar, trebuie să adăugați una la cea mai mică categorie a codului său invers.

Numărul negativ este transferat de la codul adițional la cel anterior, în ordine inversă: primul este scos, apoi cifrele sunt inversate. Rețineți că o valoare pozitivă (0 în cifre semnificative) nu este supus retroversiune și are aceeași înregistrare ca un cod direct și suplimentar.

Exemple de reprezentare a numerelor întregi

în coduri binare hexazecimale

1111 1111 1110 1100

La scrierea programelor, este important să se determine intervale de valori și forme de prezentare a informațiilor care sunt procesate. De exemplu, într-o familie de limbaj de programare BASIC (de bază) tipuri de variabile INTREG și lungi sunt folosite, respectiv, pentru a stoca numere întregi semnate de hexazecimal (doi octeți sau jumătate de cuvânt), și treizeci și doi (patru octeți, sau un cuvânt mașină) cod suplimentar.

Semnul numărului este fixat în bitul zero al primului octet (bitul din stânga). Partea digitală a numărului este stocată în biții rămași din câmpul numărului, iar bițiul număr este în ultimul bit din ultimul octet. Variabilele, cum ar fi SINGLE și DOUBLE, sunt utilizate pentru a stoca numere de puncte în virgulă în patru sau opt octeți (dublu-cuvânt), respectiv.

Semnul este stocat în biți zero, biții 1-7 sunt alocați la ordinea numărului, iar biții rămași sunt utilizați pentru biți de mantisă. De regulă, mantisa este stocată într-o formă normală, adică Prima sa cifră nu este 0.

Pentru a simplifica operațiunile, ordine de numere în virgulă flotantă n biți folosit codul ectopic, sau așa-numitul cod cu un exces de 2 n - 1. Adică, intervalul de valori [-2 n-1; 2 n - 1 -1] sunt deplasate în intervalul [0; 2 n -1], ceea ce ne permite să lucrăm cu comenzi ca și cu întregi nesemnați.

În diferite dispozitive de conversie (pentru codarea pozițiilor arborilor, discurilor etc.), codul Gray este utilizat pe scară largă (Tabelul 4). Caracteristica principală a codului este că cuvintele de cod învecinate diferă doar într-o singură cifră. Prin urmare, într-o tranziție secvențială de la număr la număr, eroarea de citire nu depășește una mai puțin semnificativă, indiferent de bitul în care sa produs incertitudinea. Pentru a converti un număr de la codul gri la un cod binar normal, toate zerouri și prima unitate din partea de sus a ordinului sunt lăsate neschimbate. Fiecare bit ulterior este inversat dacă numărul de unități precedente este ciudat sau rămâne neschimbat.

Reprezentarea numerelor zecimale într-un cod Grey de patru cifre







Articole similare

Trimiteți-le prietenilor: