Capitolul 3: Operații cu numere binare în microprocesor

Capitolul 3 Operatii Cu Numere Binare In Microprocesor



Capitolul 3: Operații cu numere binare în microprocesor

3.1 Introducere

Într-un computer, operațiile aritmetice se fac pe 8 biți, 16 biți, 32 de biți sau 64 de biți. Un număr ca 3 în binar este 11. Dacă operația trebuie făcută pe 8 biți, aceasta este considerată 00000011; precedându-l cu 0 zerouri.







Pentru un număr binar precum 10000101, bitul cel mai semnificativ este bitul din extrema stângă. Este 1 în acest caz. Bitul cel mai puțin semnificativ este bitul extrem din dreapta, care este încă 1, pentru număr. Cel mai semnificativ bit este abreviat ca MSB. Bitul cel mai puțin semnificativ este abreviat ca LSB.



Cifra BINAR este abreviată ca BIT și este pur și simplu scrisă ca bit. În numărul 10010011, fiecare sau zero este un bit. Un grup de patru biți se numește nibble. Un grup de opt biți se numește octet. Un octet este format din două nibbles. Rontul inferioară este ciugultul pentru LSB, iar ciugultul superior este ciugultul pentru MSB.



Un grup de 8 biți, 16 biți, 32 de biți sau 64 de biți este numit cuvânt, atâta timp cât acel grup transmite informații dincolo de doar indicarea unui număr. Grupul se numește cuvânt, de exemplu, dacă este o instrucțiune de nivel scăzut în computer. Există, de asemenea, un cuvânt de 24 de biți, dar care nu este folosit în mod obișnuit astăzi.





Endianness se referă la ordinea în care octeții formează un cuvânt. Luați în considerare cuvântul de 24 de biți – 100100001111010100100010. Acest cuvânt este format din trei octeți care sunt:

10010000 11110101 00100010



Octetul cel mai semnificativ este octetul cel mai din stânga. Când octetul din extrema stângă este octetul cel mai semnificativ și octetul din extrema dreaptă este octetul cel mai puțin semnificativ, aceasta este denumită reprezentarea Big Endian a cuvântului. Reprezentarea Little Endian este opusul.

Memoria computerului este o serie de celule, iar fiecare celulă deține un octet. Prima celulă din memoria computerului este pentru octetul 0, a doua este pentru octetul 1, a treia este pentru octetul 2 și așa mai departe. Cu endianness mare și pentru cuvântul anterior, octetul cel mai semnificativ este stocat în celula octet 0, octetul mijlociu este stocat în celula octet 1, iar octetul cel mai puțin semnificativ este stocat în celula octet 2. Aceasta înseamnă că există octeți mai semnificativi în celula de memorie inferioară.

Cuvântul anterior de 24 de biți poate fi scris în ordinea inversă a octeților, după cum urmează:

00100010 11110101 10010000

Acum, octetul cel mai puțin semnificativ este în extrema stângă, iar octetul cel mai semnificativ este în extrema dreaptă. Când octetul din extrema stângă este octetul cel mai puțin semnificativ și octetul din extrema dreaptă este cel mai semnificativ octet, este reprezentarea Little Endian a cuvântului. Cu puțină endianitate și pentru cuvântul anterior, octetul cel mai puțin semnificativ este stocat în celula octet 0, octetul mijlociu este stocat în celula octet 1, iar octetul cel mai semnificativ este stocat în celula octet 2. Aceasta înseamnă că există un octet mai puțin semnificativ în celula de memorie inferioară.

Endianness nu este folosit pentru biți dintr-un octet. De asemenea, nu este folosit pentru nibbles într-un octet. Este folosit doar pentru ordinea octetilor.

Linia numerică
Un număr fără semn este un număr pozitiv. Numerele pozitive sunt numere de la zero care merg în sus. Există și numere negative. Numerele pozitive și negative pot fi prezentate pe o linie numerică. Următoarea linie numerică arată numerele întregi pozitive și negative (numere întregi) aproape de zero:

Numerele negative scad de la zero în jos (înspre stânga). În multe situații, zero este considerat pozitiv. Cu toate acestea, este considerat negativ în unele situații. De aceea există un semn plus și minus în fața lui zero, în numerotarea inferioară, în diagramă. Când un număr este pozitiv, semnul său poate fi omis; acesta este cazul numerotării superioare din diagramă. Semnul minus din fața unui număr negativ nu este niciodată omis.

3.2 Adunarea numerelor binare

În plus:

A + B = S

A se numește agend, B se numește adunat și S se numește sumă.

Luați în considerare următoarea adunare a două numere pozitive în baza doi:

În baza doi, singurele cifre posibile sunt 0 și 1. Adunarea în baza 2 este similară cu adunarea în baza zece, dar doi în baza doi este unu-zero (10). Când suma a doi biți dintr-o coloană este 10, se scrie 0 și 1 este transportat în coloana din stânga imediată; pentru a fi adăugat la suma celor doi biți de acolo. Când suma totală este trei, înseamnă 11 în baza doi. Se scrie 1 din dreapta în 11, iar 1 din stânga este purtat pentru a fi adăugat la suma biților imediat din coloana din stânga. În ambele cazuri, 1 purtat spre stânga se numește transport.

Citind tabelul de adunare anterior din dreapta, în coloana a doua (din dreapta), există o purtare care rezultă din 1+1 = 10. În coloana a treia, există o purtare care rezultă din 1+1+ carry de 1 = 11. În a patra coloană, există o transportare care rezultă din 0+1+ carry de 1 = 10. În a cincea coloană, nu există carry deoarece însumarea este 0+0+ carry de 1 = 1. restul coloanelor nu implică transport.

Numărarea coloanelor începe de la capătul din dreapta. Cu adăugarea pe 16 biți, poate exista un transfer de la a opta coloană la a noua coloană (deplasându-se spre stânga). Următorul tabel ilustrează acest lucru:

Operațiile aritmetice și logice au loc în microprocesorul de pe placa de bază a computerului.

Pentru un computer cu cuvinte pe 8 biți, transferul nu poate trece automat de la al optulea bit la al nouălea bit de către hardware. Deci, pentru a adăuga două grupuri de 16 biți într-un astfel de computer, adăugarea trebuie făcută de două ori în perechi de opt-opt biți. Transportul este mutat și efectuat de software (programare).

Pentru a adăuga două numere, numerele pot fi convertite mai întâi în forma lor de complement a două (vezi mai jos) înainte de a adăuga.

3.3 Complementul a doi și scăderea sa de numere binare

Pe placa de bază a computerului se află memoria și există microprocesorul și alte circuite. Memoria este o serie de celule de opt biți. Pentru un octet, fiecare bit intră într-o celulă. Microprocesorul are câteva locații de tip memorie. Aceste locații de tip memorie sunt numite registre. Deci, în computer, grupuri de octeți pot fi stocate temporar în memorie sau în registrele microprocesorului.

În oricare dintre aceste stocări, fiecare celulă poate lua fie 1, fie 0 și nimic altceva. În viață, există numere pozitive și negative. Un număr pozitiv începe cu un semn plus (+), iar un număr negativ începe cu un semn negativ (-). Când semnul este omis, numărul este considerat un număr pozitiv.

Pentru a rezolva această problemă de indicare a semnului unui număr în computer, numerele întregi sunt stocate în intervale. Numerele întregi sunt numere întregi. Dacă sunt utilizați opt biți pentru a stoca intervalul de numere posibile, bitul din stânga este folosit ca bit de semn. Dacă numărul începe cu 0, numărul este un număr pozitiv. Dacă începe cu 1, numărul este un număr negativ. Dacă sunt folosiți șaisprezece biți pentru a stoca intervalul de numere posibile, bitul din stânga este folosit ca bit de semn. Dacă numărul începe cu 0, t numărul este un număr pozitiv. Dacă începe cu 1, numărul este un număr negativ. Numerele din acest formular se numesc numere semnate.

În practică, pot exista numere semnate pentru 8 biți, 16 biți, 32 de biți și 64 de biți. Cu cât numărul de biți este mai mare, cu atât este mai mare gama de numere posibile care pot fi stocate.

Numerele întregi de complement a doi
Cu complementul a doi, numerele pozitive sunt numerele de numărare normale, cu excepția faptului că cifra din stânga este 0. Pentru a obține numărul negativ corespunzător pentru orice număr pozitiv dat, inversează fiecare bit din număr și adaugă 1 la rezultat. Inversarea sau complementul lui 0 este 1. Inversarea sau complementul lui 1 este 0. Următoarele tabele prezintă numerele de complement doi în intervalele lor:

Tabelul 3.31
Numeri întregi de complement a doi în doi biți
Binar Zecimal
01 +1
00 +0
unsprezece -1
10 -2

Numerele binare pozitive sunt 00 și 01 (adică zero și unu). În bitul din stânga, zero arată că sunt numere pozitive. 00 este oarecum la mijlocul intervalului. Pentru a obține -1, inversarea numărului 01 se găsește a fi 10. Adăugând 1 la acesta (în extrema dreaptă) rezultă 11.

Deoarece sunt utilizați doi biți, rămâne doar un bit pentru a reprezenta numerele din intervalul care constă din numerele +1, +0 și -1 corespunzătoare lui 01, 00 și 11. Primul bit indică semnul. Se întâmplă ca 10 pentru +2 să nu fie printre aceste trei numere binare. 10 începe cu 1, ceea ce înseamnă că trebuie să fie un număr negativ în complementul a doi. Deci, 10 este inclus în interval, pentru a însemna -2.

Cu doi biți în complementul a doi, numărul tuturor numerelor întregi (pozitive și negative) care pot fi reprezentate este 2 2 = 4 și nu 2 2 -1 = 3. Nuanța rezultă din includerea ultimului număr negativ care este negativul lui 2 numărcu – 1. În acest caz, -2 2-1 = -2 1 = -2. Nu există +2 în intervalul numerelor de complement doi pe 2 biți.

Tabelul 3.32
Numeri întregi de complement a doi în patru biți
Binar Zecimal
0111 +7
0110 +6
0101 +5
0100 +4
0011 +3
0010 +2
0001 +1
0000 +0
1111 -1
1110 1110
1101 -3
1101 -3
1100 -4
1011 -5
1010 -6
1001 1001
1000 -8

Numerele binare pozitive sunt de la 0000 la 0111 (adică de la zero la șapte). În bitul din stânga, zero arată că sunt numere pozitive. 0000 este oarecum la mijlocul intervalului. Pentru a obține -1, inversarea numărului 0001 se găsește a fi 1110. Adăugând 1 la acesta (în extrema dreaptă) dă 1111. Pentru a obține -2, inversarea lui 0010 se găsește a fi 1101. Adăugând 1 la aceasta ( din extrema dreaptă) dă 1110. Celelalte numere binare negative precum -3 până la -7 sunt determinate în mod similar.

Deoarece sunt utilizați patru biți, trei biți sunt lăsați pentru a reprezenta numerele din intervalul care sunt +7, +6, +5, +4, +3, +2, +1, +0, -1, -2, - 3, -4, -5, -6 și -7 corespunzând la 0111, 0110, 0101, 0100, 0011, 0010, 0001, 0000, 1111, 1110, 1101, 1100, 10101, și 10101, și 10101.

-8 care corespunde cu 1000 trebuie adresat separat. Primul bit pentru toate aceste numere indică semnul 0 pentru numerele pozitive și 1 pentru numerele negative. Se întâmplă ca 1000 să nu fie printre aceste paisprezece numere binare. 1000 începe cu 1, ceea ce înseamnă că trebuie să fie un număr negativ, în ceea ce privește complementul a doi. Deci, 1000 este inclus în interval, adică -8.

Cu patru biți în complement a doi, numărul tuturor numerelor întregi (pozitive și negative) care pot fi reprezentate este 2 4 = 16 și nu 2 4 – 1 = 15. Nuanța rezultă din includerea ultimului număr negativ care este negativul lui 2 numberWidth – 1. În acest caz, -2 4 -1 = -2 3 = -8. Nu există +8 în intervalul de numere.

Analiza anterioară pentru biți de doi, patru și mai largi în complement de doi poate fi aplicată numerelor binare de 8 biți, 16 biți, 32 de biți și 64 de biți.

Complementul a doi sacrifică primul bit (cel mai din stânga) pentru semnul lui 0 pentru numărul pozitiv și 1 pentru numărul negativ. Pentru grupul de biți „n” biți, există 2 n numere totale pozitive plus negative. Ar fi 2 n -1, dacă nu ar fi ultimul număr negativ (cel mai mic) norocos inclus. Cel mai mare număr pozitiv este +2 n-1 -1 și cel mai mic număr negativ este -2 n-1 -1. Ar fi -2 n-1 -1, dacă nu ar fi fost norocoși -2 n-1 inclus.

Scăderea numerelor din complementul a doi
În scădere:

A – B = D

A se numește minuend, B se numește subtraend și D se numește diferență.

Pentru a scădea un număr binar pozitiv dintr-un alt număr binar pozitiv, minuendul este scris în complementul a doi, iar subtrahendul este convertit în valoarea sa negativă a complementului a doi. Deci, afirmația matematică devine:

A+ – B = D

Cu alte cuvinte, în scăderea complementului a doi, subtraendul este convertit într-un număr negativ și apoi adăugat la minuend.

Exemplul 3.31:
Evaluați următoarea expresie zecimală în complement a doi folosind patru biți:

6 – 4

Soluţie:
Numărul binar pentru 6 este 110. În complementul doi pe 4 biți, este 0110. Numărul binar pentru +4 este 100. În complementul pe doi pe 4 biți, este 0100. 0100 care trebuie convertit în negativ 4 în doi. complement după cum urmează: complementul sau inversarea lui 0100 este 1011. Adăugând 1 la acesta din capătul din dreapta, așa cum am făcut în plus, dă 1100. Deci, expresia zecimală este:

6 – 4 care devine:

0110 – 0100 care este

0110 +(– 0100) = 0110 + 1100 făcut ca în secțiunea anterioară de adăugare ca:

Notă: 0110 +(– 0100) este același cu 6 + – 4

Cu scăderea complementului a doi, orice purtare, după ultima coloană spre stânga, în adunare, este aruncată. La scaderea in zecimala, afirmatia matematica este:

6 – 4 = 2

Făcând același lucru în complementul a doi, răspunsul este 0010 care este +2 în numărarea binară a complementului a doi. Scăderea anterioară scade un număr mai mic dintr-un număr mai mare. În exemplul următor, un număr mai mare este scăzut dintr-un număr mai mic. Tabelul 3.32 poate fi consultat pentru a vedea dacă 0010 este cu adevărat complementul a doi, care este echivalent pentru +2.

Exemplul 3.32:
Evaluați următoarea expresie zecimală în complement a doi cu patru biți:

4 – 6

Soluţie:
Numărul binar pentru 4 este 100. În complementul doi pe 4 biți, este 0100. Numărul binar pentru +6 este 110. În complementul pe doi pe 4 biți, este 0110. 0110 trebuie convertit în negativ 6 în complementul în doi după cum urmează: Complementul sau inversarea lui 0110 este 1001. Adăugând 1 la acesta de la capătul din dreapta, așa cum am făcut în adăugarea anterioară, dă 1010. Deci, expresia zecimală este:

4 – 6 care devine:

0100 – 0110 care este

0100 +(– 0110) = 0100 + 1010 făcut ca în secțiunea anterioară de adăugare ca:

Notă: 4+ – 6 este același cu 0100 +(– 0110).

Cu scăderea complementului a doi, orice purtare, după ultima coloană spre stânga, în adunare, este aruncată. La scaderea in zecimala, afirmatia matematica este:

4 – 6 = -2

Făcând același lucru în complementul a doi, răspunsul este 1110 care este -2 în numărarea binară a complementului a doi. Tabelul 3.32 poate fi consultat pentru a vedea dacă 1110 este cu adevărat complement a doi care este echivalent pentru -2.

3.4 Înmulțirea numerelor binare

În declarație:

A x B = P

A se numește multiplicand, B se numește multiplicator și P se numește produs. Expresia A x B înseamnă a adăuga A, B de un număr de ori când A și B sunt numere întregi (numere întregi).

Înmulțirea în binar este aceeași cu înmulțirea în zecimală. Totuși, în loc să o faci în zecimală, se face în binar. Înmulțirea expresiei zecimale de 42 x 10 se face în binar după cum urmează, unde 42 10 = 101010 2 și 10 10 = 1010 2 :

Cele 4 numere care sunt adăugate sunt denumite produse parțiale. Răspunsul este produsul. Adăugarea produselor parțiale se face în același mod ca explicat anterior.

Înmulțirea poate fi văzută și după cum urmează: în această înmulțire de bază doi, dacă bitul (cifra) din multiplicator este 1, bitul cel mai puțin semnificativ din produsul său parțial este bitul cel mai puțin semnificativ al multiplicandului care este retasat direct sub acesta; iar restul biților multiplicandului se repetă spre stânga. În această înmulțire de bază doi, dacă bitul (cifra) din multiplicator este 0, produsul său parțial constă din 0 cu cel mai puțin semnificativ bit de 0 direct sub el. Numărul tuturor zerourilor este numărul de biți din multiplicand.

3.5 Împărțirea numerelor binare

În declarație:

A ÷ B = Q

A se numește dividend, B se numește divizor și P se numește coeficient. Coeficientul poate fi însoțit de un rest. Expresia A ÷ B înseamnă de câte ori poate fi adăugat B pentru a da A sau a fi aproape de acesta, astfel încât restul să fie 0 sau mai mic decât B.

Împărțirea se poate face în multe feluri. Diviziunea care este prezentată aici este divizia de restaurare.

Divizia de restaurare
Aceasta este metoda de diviziune lungă care se învață în școli. Dacă 237 este împărțit la 6, răspunsul este 39 restul 3. Cele 237 10 în baza 2 este 11101101 2 și 6 10 în baza 2 este 110 2 . Cele 39 10 în baza 2 este 100111 2 și 3 10 în baza 2 este 11 2 .

Deci, 11101101 2 împărțit la 110 2 dă 100111 2 restul 11 2 în baza doi. Cu metoda de restaurare, numerele binare sunt numere obișnuite și nu sunt neapărat în complement a doi. Următoarea structură împarte 11101101 2 până la 110 2 a da 100111 2 restul 11 2 :

Scăderea se face în mod obișnuit și nu folosind complementul a doi. Deoarece aceasta este baza doi, un împrumut este doi și nu zece. Dividendele parțiale sunt 10, 101, 1011, 1010 și 1001. 11 este restul. Deoarece divizorul are trei cifre, împărțirea se face practic în grupuri de trei cifre din dividendul dat. Coeficientul este numărul întreg (întreg) și este 100111 pentru această problemă. Rezultatul cât și restul este cel așteptat.

3.6 Operații aritmetice cu software și hardware

Placa de bază a computerului are un ceas. Ticurile ceasului se numesc impulsuri. La fiecare puls de ceas, una sau mai multe decizii sunt luate în locuri diferite de pe placa de bază; și asta are de-a face cu programarea (software).

În interiorul microprocesorului, există două tipuri de circuite numite: Circuite logice combinaționale și Circuite logice secvențiale. Există un alt tip de circuit numit multiplexor. Adunarea, înmulțirea și împărțirea pot avea loc într-un interval de ceas folosind logica combinațională (circuit). În timp ce programarea (software-ul) angajează o decizie la fiecare impuls de ceas folosind circuitele logice secvențiale și multiplexoarele.

Când scăderea se face folosind complementul a doi, sunt necesare cel puțin două impulsuri de ceas. La primul impuls de ceas, un multiplexor canaliză subtrahend la un set de porți NOT (o poartă NOT pe cifră). La al doilea impuls de ceas, logica combinațională adaugă 1 la ieșirea porților NOT și continuă să adauge subtrahendul și minuendul rezultat. Toată această adăugare poate avea loc într-un interval de ceas.

Adunarea, înmulțirea și împărțirea pot fi încă reduse cu programarea folosind tabelele de adevăr. Cu toate acestea, nu este acoperit în acest curs de carieră online.

3.7 Operații logice în microprocesor

AND, SAU, XOR și inversare

ȘI
Următorul tabel ilustrează AND pe biți. Aceasta înseamnă că pentru două numere binare diferite, biții corespunzători sunt formați AND pe baza tabelului AND Truth:

Deplasarea de la stânga la dreapta, 1 ȘI 1 = 1; 0 ȘI 1 = 0; 0 ȘI 0 = 0; 1 ȘI 0 = 0; și așa mai departe în conformitate cu Tabelul de Adevăr ȘI.

SAU
Următorul tabel ilustrează OR pe biți. Aceasta înseamnă că pentru două numere binare diferite, biții corespunzători sunt OR în funcție de tabelul OR Truth:

Deplasarea de la stânga la dreapta, 1 SAU 1 = 1; 0 SAU 1 = 1; 0 SAU 0 = 0; 1 SAU 0 = 1; și așa mai departe în conformitate cu Tabelul de Adevăr SAU.

GRATUIT
Următorul tabel ilustrează bitwise exclusive-OR. Aceasta înseamnă că pentru două numere binare diferite, biții corespunzători sunt XOR pe baza tabelului XOR Truth:

Deplasarea de la stânga la dreapta, 1 XOR 1 = 0; 0 XOR 1 = 1; 0 XOR 0 = 0; 1 XOR 0 = 1; și așa mai departe în conformitate cu Tabelul de Adevăr XOR.

inversează (NU)
Următorul tabel ilustrează NU pe biți (invers). Aceasta înseamnă că pentru un număr binar, de data aceasta, fiecare bit este inversat pe baza tabelului NOT Truth:

Deplasarea de la stânga la dreapta, NU 1 = 0; NU 0 = 1; NU 0 = 1; NU 1 = 0; și așa mai departe în conformitate cu Tabelul NU Adevărului.

Schimbarea la dreapta sau la stânga

Schimbați la dreapta
Următorul număr binar este deplasat cu 3 poziții de biți la dreapta, cu zerourile introduse în pozițiile de biți libere din stânga:

Schimbarea se poate face pentru unul, doi, trei, patru, etc.

Schimbați la stânga
Următorul număr binar este deplasat cu 3 poziții de biți la stânga, cu zerourile introduse în pozițiile de biți libere din dreapta:

Schimbarea se poate face pentru unul, doi, trei, patru, etc.

Rotire la dreapta sau la stânga

Rotirea este similară cu schimbarea. Se face pe rând. Când se rotesc la dreapta, biții care părăsesc capătul drept nu cad ca la deplasare; ele înlocuiesc biții eliberați din stânga, unul câte unul. La rotirea la stânga, biții care părăsesc capătul din stânga nu cad ca la deplasare; ele înlocuiesc bucățile eliberate din dreapta, unul câte unul.

Invarte spre dreapta
Următorul număr binar este rotit cu 3 biți la dreapta:

Rotirea se poate face pentru unul, doi, trei, patru, etc.

Rorate Stânga
Următorul număr binar este rotit cu 3 biți la stânga:

Rotirea se poate face pentru unul, doi, trei, patru, etc.

3.8 Setul de caractere ASCII și valorile codului acestuia

ASCII înseamnă „American (U.S.A) Standard Code for Information Interchange”. Imaginează-ți o tastatură cu 96 de taste. Aceasta este o tastatură ideală în care tastele cu litere mari sunt diferite de tastele cu litere mici. Fiecare altă tastă reprezintă un caracter care se găsește pe o tastatură engleză (SUA). Caracterele și codurile (numerele corespunzătoare pentru caractere) sunt enumerate în următoarele:

În acest tabel, primele 32 de caractere (inclusiv caracterul cu 00 16 = 0 10 cod) sunt caractere care nu se imprimă. Sunt personaje de control. Nu se văd pe ecran (monitor) unde toate sunt egale. Au doar efecte. Să discutăm mai multe despre asta mai târziu.

Restul caracterelor sunt caractere de tipărire; se văd pe ecran. Există 128 de caractere ASCII. 2 7 = 128. 1.111.111 2 = 127 10 . 7 în 2 7 înseamnă 7 biți.

Acum, 1111111 2 + 1 2 este la fel ca:

Aici, 10.000.000 2 = 128 10 . Sunt 128 10 caracterele din lista anterioară (tabelul) de caractere ASCII. Acesta include caracterul nul, al cărui cod în baza șaisprezece (hexazecimal) este 00, care este echivalent cu 0 în baza zece.

Deoarece există 128 de caractere în total, 128 minus 32 de caractere care nu se imprimă oferă 96 de caractere de imprimare. În această secțiune, se presupune că există o tastatură ideală cu 96 de caractere care sunt caractere imprimabile. Pe această tastatură ideală, tastele pentru caracterele engleze majuscule sunt diferite de tastele caracterelor engleze cu litere mici.

Fiecare caracter de pe tastatură este reprezentat de un număr de bază doi de 7 biți care nu sunt afișați în listă. Litera mare „N”, de exemplu, este reprezentată de cei șapte biți 1001110 în baza 2. Pentru a converti 1001110 2 la baza 16, precedați-o cu 0 și grupați rezultatul în subgrupuri de patru biți, după cum urmează:

| 0100 | 1110 | 2 = | 4 | E | 16

Adică 01001110 2 = 4E 16 . Pentru a converti 4E 16 la baza zece, faceți următoarele:

4 x (16) 1 + E x (16) 0 = 4 x 16 + E x 1 = 4 x 16 + 14 x 1 = 64 + 14 = 78 10

În dreapta lui „N” în listă (tabel) se află numărul hexazecimal 4E și numărul zecimal 78.

Ca un alt exemplu, caracterul „[“ este reprezentat de cei șapte biți 1011011 din baza 2. Pentru a converti 1011011 2 la baza 16, precedați-o cu 0 și grupați rezultatul în subgrupuri de patru biți, după cum urmează:

| 0101 | 1011 | 2 = | 5 | B | 16

Adică 01011011 2 = 5B 16 . Pentru a converti 5B16 în baza zece, procedați după cum urmează:

5 x (16) 1 + B x (16) 0 = 5 x 16 + B x 1 = 5 x 16 + 11 x 1 = 80 + 11 = 91 10

În dreapta lui „[“ în listă (tabel) este numărul hexazecimal de 5B și numărul zecimal de 91.

Ca încă un exemplu, caracterul pentru numărul zecimal „5” este reprezentat de cei șapte biți 0110101 din baza 2 și nu 0000101 în baza 2. Pentru a converti 0110101 2 la baza 16, precedați-o cu 0 și grupați rezultatul în subgrupuri de patru biți, după cum urmează:

| 0011 | 0101 | 2 = | 5 | B | 16

Adică 00110101 2 = 35 16 . Pentru a converti 3516 în baza zece, procedați astfel:

3 x (16) 1 + 5 x (16) 0 = 3 x 16 + 5 x 1 = 3 x 16 + 5 x 1 = 48 + 5 = 53 10

În dreapta lui „5” din listă (tabel) se află numărul hexazecimal de 35 și numărul zecimal de 53.

Deoarece computerul funcționează în octeți, atunci când o tastă de pe tastatura ideală este apăsată, sunt trimiși opt biți către microprocesor (placa de bază). Tastatura ideală este un periferic care este separat de unitatea de sistem (de bază) a computerului. Are un circuit electronic (IC) care creează cei șapte biți și îi precede cu un zero înainte de a-l trimite prin cablul său către placa de bază a unității de sistem. Din portul de intrare (circuitul de intrare) al plăcii de bază, merge la microprocesorul care se află și pe placa de bază. De la microprocesor se trece la memoria care este montata si pe placa de baza.

Deci, atunci când tasta „N” de pe tastatura ideală este apăsată, opt biți 01001110 sunt duși la microprocesor. De la microprocesor, acestea sunt duse în memorie unde rămân într-o locație de memorie ca un octet. Programatorul ar trebui să țină cont de faptul că cei opt biți ai 01001110 2 este la fel cu 4E 16 care este la fel cu 78 10 .

Când tasta „[“ de pe tastatura ideală este apăsată, opt biți 01011011 sunt duși la microprocesor. De la microprocesor, acestea sunt duse în memorie unde rămân într-o locație de memorie ca un octet. Programatorul ar trebui să țină cont de faptul că cei opt biți ai 01011011 2 este la fel cu 5B 16 care este la fel cu 91 10 .

Când tasta „5” de pe tastatura ideală este apăsată, ca caracter și nu ca număr zecimal, opt biți 00110101 sunt duși la microprocesor. De la microprocesor, acestea sunt duse în memorie unde rămân într-o locație de memorie ca un octet. Programatorul ar trebui să țină cont de faptul că cei opt biți ai 00110101 2 este la fel cu 35 16 care este la fel cu 5310 10 .

Există momente în care un program rulează și așteaptă ca numărul zecimal de 5 să fie introdus în computer. În această situație, dacă tasta „5” de pe tastatura ideală este apăsată, tot codul de opt biți 00110101 este dus la microprocesor. Deoarece ceea ce este necesar este numărul zecimal de 5, și nu caracterul „5”, o bucată de cod (program scurt) din memorie folosește microprocesorul pentru a converti codul caracterului 00110101 în baza doi în numărul complementului a doi 00000101 2 înainte de a-l trimite într-o locație de memorie ca un octet de complement a doi. Programatorul trebuie să aibă în vedere că 00000101 înseamnă 5 10 în baza 2 și este diferită de numerele de cod 00110101 2 , 35 16 , și 53 10 ceea ce înseamnă caracterul „5”. Pentru a afișa numărul complementului 00000101 al celor doi în memorie, un alt program scurt trebuie să convertească 00000101 din memorie în 00110101. Este 00110101, care este același cu 35. 16 care este la fel cu 53 10 care este afișat pe monitor (sau imprimat pe o hârtie de către imprimantă).

3.9 Formatul numărului în virgulă mobilă

Un număr fără o parte zecimală este un număr întreg. Numărul 36 este un număr întreg. 36.375 nu este un număr întreg. Este un număr zecimal cu o parte zecimală. Partea zecimală a lui .375 este o fracție mai mică decât 1.

36,375 este interpretat sub formă zecimală ca:

Acum:

Deci, 100100 2 = 3610, care este parte a numărului întreg din 36,375 10 .

Acum:

Deci, 0,011 2 = 0,375 10 care este partea zecimală a numărului 36,375 10 .

∴ 36.375 10 = 100100,011 2

Spuneți altfel:

100100.011 2 = 36.375 10

Numerele sunt reprezentate în computer în baza 2 și nu în baza 10, totul fiind egal. Deoarece o celulă dintr-un registru din microprocesor sau o celulă din memorie poate lua doar 1 sau 0, nu există loc pentru a stoca un punct zecimal. Acest lucru ridică o problemă. Ca rezoluție, există reprezentarea IEEE-754 cu precizie unică pe 32 de biți în virgulă mobilă și reprezentarea în virgulă mobilă IEEE-754 cu precizie dublă pe 64 de biți.

Format de număr în virgulă mobilă pe 32 de biți
Numărul 100100.0112 poate fi exprimat astfel:

100100.011 2 = 1,00100011 2 x 2 +5

Partea dreaptă a simbolului = este denumită în matematică forma standard de bază două a părții stângi a lui 100100.011 2 .

Acum, 00100011 din 1,00100011 2 în partea dreaptă a simbolului =, fără „1” precedent. iar fără 2 pentru bază, se numește semnificația explicită. În acest caz, punctul binar este luat cinci locuri la stânga pentru a avea „1”. Nu confundați între punctul zecimal și punctul binar. Punctul binar este pentru baza 2, în timp ce punctul zecimal este pentru baza 10. „1”. urmat de 00100011 în partea dreaptă a simbolului =, fără 2 pentru bază, formează semnificația adevărată. Cu toate acestea, 1,00100011 se numește semnificație implicită.

După semnificația din partea dreaptă este „x 2 +5 ” expresie. Cu această expresie, +5 se numește exponent. Semnul plus înseamnă că punctul binar trebuie mutat cu cinci locuri înainte pentru a fi în poziția inițială normală, iar 2 este baza pentru numerotare. Ecuația anterioară poate fi scrisă invers ca:

1,00100011 2 x 2 +5 = 100100,011 2

Cu reprezentarea în virgulă mobilă pe 32 de biți, este „1.00100011 2 x 2 +5 ” care este folosit și nu doar „100100.011 2 ”. 2 pentru bază nu este înregistrat. Reprezentarea în virgulă mobilă pe 32 de biți pentru „1.00100011 2 x 2 +5 ”, care este egal cu 36.375 10 = 100100,011 2 , este prezentată în următorul tabel:

Există poziții de 32 de biți care sunt numerotate de la capătul din dreapta, începând de la 0. Primul bit de la capătul din stânga este bitul de semn. Dacă numărul este pozitiv, acest bit este 0. Dacă numărul este negativ, acest bit este 1 (-1 este format din două caractere și nu poate fi pus într-o singură celulă). 1.00100011 2 x 2 +5 care este egal cu 36,375 10 care este de asemenea egal cu 100100.011 2 este un număr pozitiv. Deci, primul bit este 0.

Există opt poziții de biți pentru exponent, începând de la poziția 30 la poziția 23, inclusiv. Totuși, exponentul care este scris acolo este 10000100 2 care este egal cu 132 10 . Exponentul numărului de dobândă este de fapt +5 din baza lui doi. Deci, ce se întâmplă?

Acum, în formatul de 32 de biți, un exponent de 0 este scris ca 01111111 2 care este egal cu 127 10 . +5 10 este +101 2 . Deci, ajungând la 10000100 2 în porțiunea de exponent din tabel, 101 2 a fost adăugat la 01111111 2 , în mod corespunzător. Înseamnă că 5 a fost adăugat la 127 pentru a avea 132 10 .

Significand, fără „1.”, a coborât pozițiile 22 până la 15, inclusiv. Rețineți că 1 din „1”. nu a fost indicat în șirul de 32 de biți. Nu este niciodată indicat – acceptă asta. Restul celulelor până la poziția 0 sunt umplute cu zerouri.

Dacă exponentul real este -5, atunci 5 se scade din 127 10 a avea 122 10 . Aceasta corespunde cu scăderea a 101 2 de la 01111111 2 să aibă 01111010 2 .

Cu toate ilustrațiile anterioare, numărul +1 care este egal cu 1,0 x 2 0 = 1,0 x 1 = 1,0 este reprezentat ca:

Rețineți că „1”. de 1,0 x 2 0 nu este indicat în format. Nu este niciodată indicat. Următoarea fracție mixtă care merge pozitiv după 1,0 este:

Observați 1 la capătul din dreapta. Această reprezentare este numărul:

Diferența dintre 1,0000001192092896 și 1,0 este:

1,0000001192092896 – 1,0 = 0,0000001192092896

Numerele cu părți zecimale sunt fracții mixte. Nu toate fracțiile cuprinse între 1 10 și 2 10 poate fi reprezentat în calculator. Se poate presupune că cel mai mic decalaj fracțional dintre numerele mixte consecutive cu formatul în virgulă mobilă pe 32 de biți este 0,0000001192092896. Așteptați-vă ca intervalul pentru precizia dublă să fie mai mic. Consultați următoarea ilustrație.

Reprezentând numărul, 0,0 nu urmează argumentele anterioare. Reprezentarea pentru 0.0 este declarată și trebuie învățată ca atare. Pentru a reprezenta 0,0, toate celulele pentru semnificant sunt 0 și toate celulele pentru exponent sunt, de asemenea, zero. Bitul de semn poate fi 0 sau 1. Din păcate, acest lucru dă naștere la 0 pozitiv și la 0 negativ după cum urmează:

În viața reală, există doar un zero. 0 pozitiv și 0 negativ nu există. Cu toate acestea, 0 este de obicei considerat pozitiv. 0 pozitiv și 0 negativ există aici din cauza acestei descrieri de format special. Linia numerică (vezi mai sus) poate avea și +0 și -0, dar există un singur zero.

Format de număr în virgulă mobilă pe 64 de biți
Formatul în virgulă mobilă pe 64 de biți este similar cu formatul pe 32 de biți, dar cu următoarele diferențe:

  • Există 64 de biți pentru a reprezenta un număr.
  • După bitul de semn, există 11 biți pentru numărul exponentului.
  • Numărul exponentului pentru indicele zero (2 0 ) este 1023 10 = 01111111111 2 .
  • Cei unsprezece biți sunt urmați de 52 de biți pentru semnificația explicită.
  • Are o gamă mai largă de numere decât formatul pe 32 de biți.

Rețineți că „1”. adică la începutul semnificației nu este încă inclusă printre cei 64 de biți, la fel cum nu este inclusă printre cei 32 de biți pentru formatul de 32 de biți.

Una dintre cele mai importante diferențe dintre formatul de 64 de biți și formatul de 32 de biți este că diferența dintre fracțiile mixte consecutive în formatul de 64 de biți este mai mică decât cea a formatului de 32 de biți.

În formatul de 64 de biți, intervalul (decalajul) dintre 1,0 și următoarea fracție mixtă poate fi calculat după cum urmează:

1.0 este

0 01111111111 00000000000000000000 00000000000 0000000000000000000000 2

Acesta este echivalent cu „1.”, care nu a fost indicat în șir, înmulțit cu 2 ridicat la puterea (indicele) 0 (cu exponentul fiind 1023 10 = 01111111111 2 pentru 2 0 = 1). Coarda este de 1,0 x 2 0 .

Următoarea fracție mixtă mai mare de 1,0 este:

0 01111111111 00000000000000000000 00000000000 000000000000000000001 2

Acesta este echivalent cu „1”. care nu este indicat în șir, urmat de 51 de zerouri și apoi 1, înmulțit cu 2 ridicat la puterea 0 (cu exponentul fiind 1023 10 = 011111111112 2 pentru 2 0 = 1). Acesta este la fel ca:

+2 0 × (1 + 2− -52 ) ≈ 1,0000000000000002

≈ înseamnă aproximativ egal cu.

Acum:

1,0000000000000002 – 1,0 ≈ 0,0000000000000002

Valoarea intervalului corespunzătoare pentru un format pe 32 de biți este 0,0000001192092896 ≈ 0,00000012.

0,0000000000000002 este mult mai mic decât 0,00000012. Deci, există mult mai multe fracții mixte între două numere întregi consecutive (de exemplu, 3 și 4) în formatul de 64 de biți decât există între două numere întregi consecutive pentru formatul de 32 de biți.

Numărul de fracții mixte dintre două numere întregi consecutive pe linia numerică este infinit. Deci, niciun format (de exemplu, 32 de biți sau 64 de biți) nu poate furniza toate fracțiile amestecate între oricare două numere întregi consecutive (numere întregi). Cu cât este mai mic intervalul (intervalul) dintre două numere întregi consecutive furnizate de un format (de exemplu, 32 de biți sau 64 de biți), cu atât este mai mare numărul de fracții mixte între numerele întregi consecutive (pentru linia numerică).

Motivele pentru care formatul de 64 de biți este descris drept precizie dublă sau mai mare, în comparație cu formatul de 32 de biți, sunt că intervalul dintre două fracții mixte consecutive delimitate de două numere întregi consecutive pentru formatul de 64 de biți este mai mic decât cel de 32 de biți corespunzător. - interval format de biți. De asemenea, există mai multe fracții mixte posibile între două numere întregi mărginite pentru formatul pe 64 de biți decât există în mod corespunzător pentru formatul pe 32 de biți.

Conversia unei părți zecimale (fracție) a numărului zecimal într-o parte binară
36,375 este un număr zecimal cu partea zecimală de „.375”. Partea zecimală a lui „.375” este o fracție între zero și unu. Valoarea 0,5 din baza zece are aceeași valoare cu 1/2 din baza doi. Cele 0,5 10 care se exprimă cu expansiunea de bază doi este:

Nu este 0,101 2 ceea ce înseamnă 0,625 10 . Partea zecimală a unui număr zecimal are partea sa binară echivalentă pentru numărul binar corespunzător. Deci, pentru a converti un număr zecimal precum 36,375 10 la baza doi, convertiți 36 în binar și apoi convertiți .375, de asemenea, în binar. Apoi, uniți ambele rezultate cu punctul binar. Metodele de conversie a celor două secțiuni sunt diferite. Cum se transformă un întreg zecimal în baza 2 este explicat în capitolul 1.

Pentru a converti fracția zecimală în fracțiune binară, urmați următorii pași:

  • Înmulțiți fracția zecimală (partea zecimală) cu 2. Numărul întreg care rezultă din aceasta este prima cifră binară.
  • Repetați pasul anterior cu rezultatul zecimal fracționar pentru a obține următoarea cifră binară.
  • Continuați să repetați pasul anterior până când rezultatul fracționar zecimal este .0000—.

Exemplu: Convertiți partea fracționară a lui 36,375 10 la partea fracțională echivalentă din baza doi.

Soluţie:

Rețineți că în al treilea pas, .500 a fost înmulțit cu 2 și nu cu 1.500. Fracția corespunzătoare binară este citită la ultima coloană din partea de sus. Și astfel, următorul rezultat este:

.375 10 = .011 2

Conversia unei părți binare (fracție) a unui număr binar într-o parte zecimală
Pentru a realiza acest lucru, extindeți fracția binară în puteri reciproce de 2.

Exemplu: convertiți partea fracționară a lui 100100,011 2 la partea fracțională echivalentă în baza zece.

Soluţie:

3.10 Prefixe numerice în calcul

În viața normală, 1 kilogram înseamnă 1000 care este prescurtat în k (minuscule) ca și în 1kg. În informatică, 1 kilogram înseamnă 2 10 = 1024, dar este abreviat în K (majuscule) ca și în 1Kbiți. În viața normală, 1 mega înseamnă 1.000.000 care este prescurtat în M (majuscule) ca și în 1Mg. În calcul, 1 mega înseamnă 2 douăzeci = 1.048.576 = 2 10 x 2 10 = 1024 x 1024 = 1.048.576 și este încă prescurtat în M (majuscule) ca și în 1Mbiți. În viața normală, 1 giga înseamnă că 1.000.000.000 este prescurtat în G (majuscule) ca și în 1Gg. În calcul, 1 giga înseamnă 2 30 = 1.073.741.824 = 2 10 x 2 10 x 2 10 = 1024 x 1024 x 1024 = 1.073.741.824 și este încă prescurtat în G (majuscule) ca și în 1Gbits. Următorul tabel oferă semnificația a patru prefixe în viața normală și în calcul:

3.11 Probleme

Cititorul este sfătuit să rezolve toate problemele dintr-un capitol înainte de a trece la capitolul următor.

  1. Desenați o linie numerică cu numere întregi de la -10 la +10.
  2. Adăugați următoarele numere binare în complementul pe 8 biți: 101010 2 și 1111 2 .
  3. Utilizați numai abordarea complementului a doi în 8 biți pentru a scădea numărul binar de 1111 2 din numărul binar 101010 2 .
  4. Găsiți produsul 10110 2 x 1101 2 în baza doi.
  5. Împărțiți 36.375 10 până la 1000 10 în zecimal și în binar și comparați rezultatele.
  6. Utilizați cei 8 biți la alegere pentru a ilustra logica AND, SAU, XOR, Invers, Shift Right, Shift Left, Rotate Right și Rotate Left. Fiecare octet ar trebui să aibă un amestec de 1 și 0.
  7. a) Scrieți codul numeric pentru caracterul ASCII de zero în hexazecimal, binar și zecimal.
    b) Scrieți codul numeric pentru caracterul ASCII al lui „1” în hexazecimal, binar și zecimal.
    c) Scrieți codul numeric pentru caracterul ASCII al lui „A” în hexazecimal, binar și zecimal.
    d) Scrieți codul numeric pentru caracterul ASCII al lui „a” în hexazecimal, binar și zecimal.
  8. Convertiți 49,49 10 în baza doi. Transformați rezultatul în formatul IEEE pe 32 de biți în virgulă mobilă.
  9. a) Prin ce este diferit formatul IEEE pe 64 de biți în virgulă mobilă de formatul pe 32 de biți?
    b) Prezentați cele două motive legate pentru care formatul pe 64 de biți este descris drept precizie dublă sau mai mare față de
    format pe 32 de biți.