Fundamentele aritmetice și logice ale calculatoarelor. Fundamentele aritmetice și logice ale funcționării unui computer cu sistem numeric. Formulare de numere

2.1 Fundamentele aritmetice și logice ale calculatoarelor

2.1.1 Prezentarea datelor într-un computer

Unitățile structurale de informații sunt utilizate pentru a estima cantitatea de informații și pentru a eficientiza procesul de prelucrare a acesteia.

Un bit este luat ca unitate de informație.

Bitul determină cantitatea de informații prin care una dintre cele două stări alternative este evidențiată. Într-un bit, folosind cifrele 0 și 1, poate fi reprezentată o cifră binară a unui număr sau o variabilă logică, care ia valorile „fals” sau, respectiv, „adevărat”.

O secvență de biți care are o semnificație specifică se numește câmp.

Un câmp cu lungimea de 8 biți se numește octet.

Byte, de regulă, este unitatea minimă (indivizibilă) de informații cu care funcționează computerul. Toate celelalte unități de informație sunt derivatele sale (Fig. 2.1).

Orez. 2.1. Unități structurale de informații

Unitatea structurală principală a informațiilor procesate de un computer este un cuvânt-mașină.

În calculatoarele moderne, lungimea unui cuvânt de mașină este de obicei de doi octeți. De regulă, fie un număr, fie o instrucțiune poate fi reprezentată într-un cuvânt de mașină. Pentru a asigura acuratețea necesară a calculelor și pentru a economisi memorie, majoritatea computerelor pot funcționa și cu un cuvânt dublu.

O secvență de câmpuri, octeți sau cuvinte care au același sens formează o matrice.

Un grup de matrice poate fi combinat într-un segment. Cantitatea de informații din matrice mari este estimată folosind unități derivate care sunt multipli ai numărului de octeți la puterea a doi (1 kbyte = 1024 bytes = 2 10 bytes; 1 MB = 1 048 576 bytes = 2 20 bytes).

Calculatorul funcționează cu două tipuri de informații: informații de control și date numerice.

Pentru a reprezenta datele numerice într-un computer, se folosesc forme naturale și normale de notație.

În calcul, se obișnuiește să se separe partea întreagă de punctul fracțional. Deoarece în acest caz poziția punctului dintre părțile întregi și fracționale este clar definită, o astfel de reprezentare a numerelor se numește reprezentare cu punct fix (Fig. 2.2).

Orez. 2.2. Reprezentarea numerelor cu virgulă fixă

Dezavantajul reprezentării numerelor în virgulă fixă ​​este intervalul mic al acestora. Prin urmare, de regulă, numai numerele întregi sunt scrise în această formă. În acest caz, nu este nevoie să alocați un câmp pentru partea fracționară a numărului.

Numărul maxim de valoare absolută, reprezentat în formă naturală, va fi numărul determinat de formula (2 m - 1) (Fig. 2.3).

Forma normală a numărului are forma N = m × q p , unde m este mantisa numărului (m<1); p - порядок; q - основание системы счисления.

Ordinea indică locația în număr a punctului care separă partea întreagă a numărului de partea fracțională.

Orez. 2.3. Reprezentare intreg

Această formă de reprezentare a numerelor se numește formă în virgulă mobilă. În acest caz, cuvântul mașină este împărțit în două câmpuri principale. Într-un câmp se scrie mantisa numărului, în al doilea se indică ordinea numărului, ținând cont de semnul ordinii (caracteristic numărului). Un bit este alocat pentru a reprezenta semnul numărului. Distribuția biților într-un cuvânt de patru octeți pentru cazul în virgulă mobilă este prezentată în Figura 2.4.

Gama de reprezentare a numerelor în virgulă mobilă este mult mai mare decât intervalul de reprezentare a numerelor în virgulă fixă. Cu toate acestea, viteza unui computer atunci când procesează numere în virgulă mobilă este mult mai mică decât atunci când procesează numere în virgulă fixă. Acest lucru se datorează faptului că atunci când lucrați cu virgulă mobilă, fiecare operație necesită timp pentru a determina locația punctului.

Orez. 2.4. Reprezentarea numerelor în virgulă mobilă

În calculatoarele moderne, se folosesc ambele forme de reprezentare a numerelor.

2.1.1.1 Reprezentarea comenzilor în calculator

Programul mașinii, care determină procesul de procesare a informațiilor într-un computer, constă dintr-o secvență de comenzi.

O comandă computerizată este înțeleasă ca o informație care asigură generarea de semnale de control pentru ca mașina să efectueze o anumită acțiune.

Câmpul de comandă este format din două părți: operațional și adresa. Partea de operare specifică un cod de operație (CPC) care specifică acțiunea (aritmetică sau logică) pe care trebuie să o efectueze mașina. Partea de adresă a comenzii conține adresele operanzilor (valorilor) implicați în operație. Adresa „A” se înțelege ca fiind numărul (codul digital) al cuvântului mașină (sau alt câmp al memoriei computerului), unde se înregistrează informațiile necesare executării comenzii. Numărul de adrese specificat în comandă poate fi diferit. În funcție de numărul de adrese, sunt definite următoarele formate de comandă: unicast, cu dublă adresă, cu trei adrese și cu patru adrese (Fig. 2.5).

Orez. 2.5. Formate de comandă de calculator

O instrucțiune cu trei adrese care efectuează, de exemplu, o operație de adăugare trebuie să conțină un cod de operație de adăugare și trei adrese. Acțiunile efectuate de o astfel de comandă sunt determinate aproximativ de următoarea secvență:

1) luați numărul stocat la prima adresă;

2) luați numărul stocat la a doua adresă și adăugați-l la primul număr;

3) scrieți rezultatul adăugării la a treia adresă.

În cazul unei comenzi cu două adrese, nu există o a treia adresă, iar rezultatul poate fi scris fie la a doua adresă (cu pierderea informațiilor care s-a scris acolo), fie lăsat în sumatorul unde a fost efectuată operația de adăugare. . Apoi, pentru a elibera sumatorul, este necesară o comandă suplimentară pentru a rescrie numărul la adresa necesară. Când adăugați două numere stocate la adresele A1 și A2, cu rezultatul înregistrat, de exemplu, în A1 folosind o comandă cu două adrese, sunt deja necesare patru comenzi:

1) apelarea la sumatorul numarului memorat la adresa A1;

2) apelarea numărului stocat la adresa A2 și adăugarea acestuia la primul număr;

3) ștergeți numărul de la adresa A1;

4) înregistrați rezultatul la adresa A1.

Astfel, cu cât adresabilitatea comenzilor computerului este mai mică, cu atât este mai mare numărul de comenzi necesare pentru compilarea aceluiași program al mașinii.

Prin creșterea adresei computerului, este necesară creșterea lungimii cuvântului mașină pentru a aloca câmpurile necesare pentru partea de adresă a comenzilor din acesta. Odată cu creșterea cantității de memorie a computerului, lungimea câmpului necesar pentru o adresă crește. În același timp, nu toate comenzile folosesc pe deplin câmpurile de adresă. De exemplu, comanda de a scrie un număr la o anumită adresă necesită un singur câmp de adresă.

2.1.2 Sisteme numerice

Metoda de reprezentare a numerelor prin intermediul semnelor numerice (numerelor) se numește sistem de numere. Regulile de scriere și operare a numerelor în sistemele numerice utilizate în calculul digital determină bazele aritmetice ale calculatoarelor digitale.

Componentele sistemului numeric:

1. Baza sistemului numeric este numărul de cifre diferite (simboluri) folosite pentru a reprezenta un număr.

2. Alfabetul sistemului numeric - simbolurile și numerele folosite pentru a scrie toate cifrele unui număr.

3. Reguli de scriere și citire a numerelor.

Există două tipuri principale de sisteme numerice: nepozițional și pozițional.

Sisteme numerice non-poziționale.

Sistemele de numere nepoziționale se caracterizează prin faptul că valoarea unui număr, exprimată printr-un set de cifre, este determinată doar de configurația simbolurilor digitale și nu depinde de locația acestora. Exemplul clasic de sistem non-pozițional este sistemul numeric roman. De exemplu: XIX; XXIII.

Sisteme numerice poziționale.

Cele mai răspândite sunt sistemele de numere poziționale, în care valoarea oricărei cifre este determinată nu numai de configurația simbolului său, ci și de locația (poziția) pe care o ocupă în număr.

Dintre sistemele poziționale se disting sistemele de numere omogene și mixte (neomogene).

În sistemele omogene, numărul de cifre valide pentru toate pozițiile (cifrele) numărului este același. Un sistem pozițional omogen este sistemul numeric zecimal general acceptat (q = 10), care utilizează zece cifre de la 0 la 9 pentru a scrie numere.

Un exemplu de sistem de numere mixt este sistemul de referință temporală, în care sunt utilizate 60 de gradări în cifrele secundelor și minutelor și 24 de gradări în cifrele orelor etc.

Orice număr A, scris într-un sistem pozițional omogen, poate fi reprezentat ca suma unei serii de puteri:

(2.1.)

unde q este baza sistemului numeric; a i - cifre ale sistemului numeric cu baza q; i - numărul (greutatea) poziției (cifra) numărului.

Pot fi implementate un număr infinit de sisteme de numere diferite. În calculatoarele digitale se folosesc în principal sisteme poziționale omogene. Pe lângă sistemul numeric zecimal din calculatoare, sunt utilizate pe scară largă sistemele cu baza q, care sunt puterea lui 2, și anume: sisteme de numere binare, octale, hexazecimale.

Când se utilizează împreună diferite sisteme de numere, după înregistrarea numărului, se poate indica baza sistemului, de exemplu: 347,42 10; 1101 2; 235 8 etc.


Dispozitivele digitale trebuie să se ocupe de diferite tipuri de informații. Aceasta este informație binară pură, cum ar fi dacă dispozitivul este pornit sau oprit, dacă dispozitivul funcționează sau nu. Informațiile pot fi prezentate sub formă de texte, iar apoi literele alfabetului trebuie să fie codificate folosind niveluri de semnal binar. Destul de des, informațiile pot fi numere. Numerele pot fi reprezentate în diferite sisteme numerice. Forma de înregistrare a numerelor în ele diferă semnificativ una de cealaltă, prin urmare, înainte de a trece la caracteristicile de reprezentare a numerelor în tehnologia digitală, vom lua în considerare înregistrarea lor în diferite sisteme numerice.

Sisteme numerice

Sistemul numeric este un set de tehnici și reguli de reprezentare a numerelor folosind semne digitale.

Există multe moduri de a scrie numere în caractere digitale, dar orice sistem de numere utilizat ar trebui să ofere:

  • intervalul de reprezentare a oricărui număr;
  • unicitatea reprezentării (fiecărei combinații de simboluri îi corespunde o singură valoare).

Toate sistemele numerice sunt împărțite în poziționale și nepoziționale. ÎN sistem numeric non-pozițional semnificația cifrei în orice loc al numărului este aceeași, adică nu depinde de poziția locației. De exemplu, un sistem unar cu un caracter egal cu unul. Un astfel de sistem de numere este destinat contului total (noduri pentru „memorie”, crestături, liniuțe, numărare pe degete etc.). Pentru a reprezenta un anumit număr în acest sistem, trebuie să notați numărul de unități (bețișoare) egal cu acest număr. Acest sistem este ineficient deoarece introducerea numărului este prea lungă.

Un alt exemplu de sistem de numere „aproape non-pozițional” este sistemul de numărare roman. Sistemul de numărare roman folosește următoarele simboluri:

I - 1; V - 5; X - 10; b - 50; C - 100; 0-500; M - 1000.

Regulile pentru conversia de la sistemul numeric roman la sistemul arab sunt următoarele. Numărul mai mic din dreapta numărului mai mare se adaugă celui mai mare, iar numărul mai mic din stânga numărului mai mare se scade din cel mai mare.

Un exemplu de traducere din sistemul roman în sistemul de numere arabe:

SSHUUP \u003d 100 + 100 + 10 + 5 + 5 + 1 + 1 \u003d 222;

X1X1Y \u003d 10 + (10 - 1) \u003d 19.

După cum rezultă din regula traducerii, sistemul roman nu este complet non-pozițional. Acest sistem este rar folosit (cadran, arhitectură, istorie etc.).

Sisteme numerice poziționale - acestea sunt sisteme numerice în care valoarea unei cifre dintr-o intrare numerică N depinde de poziţia (locul). De exemplu, în sistemul numeric zecimal, numărul 05 înseamnă cinci unități, 50 înseamnă cinci zeci, 500 înseamnă cinci sute și așa mai departe.

Fundație (bază) sisteme de numere (c) - acesta este numărul de caractere sau simboluri folosite pentru a reprezenta cifrele dintr-un sistem de numere dat.

Este posibil un număr infinit de sisteme de numere poziționale, deoarece orice număr poate fi luat ca bază și se poate forma un nou sistem de numere.

Exemple de sisteme de numere poziționale și aplicarea lor sunt date în tabel. 2.1.

În tabel. 2.2 pentru comoditatea comparației, sunt date primele 23 de numere ale seriei naturale de numere din diferite sisteme de numere.

După cum se vede din tabel. 2.2, pentru a scrie același număr în sisteme numerice diferite, este necesar un număr diferit de poziții sau cifre. De exemplu, 14 |0 = 1 1 10 2 = 16 8 = E [în. Adică, în sistemul numeric zecimal, numărul 14 ocupă două poziții (două cifre), în sistem binar numerotarea - patru poziții, în sistemul numeric hexazecimal - o poziție. Cu cât baza sistemului numeric este mai mică

Exemple de sisteme de numere poziționale

Nume

socoteala

Baza

socoteala

Folosit

Aplicație

Binar

În calcul digital, matematică discretă, programare

ternar

Oricare trei caractere: (-, 0,+), (-1,0,+1), (A,B, CU), (X, Y, T) sau trei cifre: (1,2,3)

În electronica digitală

octal

Zecimal

omniprezentă

al șaisprezecelea

A, B, C, T

În informatică digitală, programare

Anii șaizeci

00, 01,02,..., 59

Ca unități de timp, unghiuri, coordonate,

longitudine și latitudine

Cu o lungime dată a grilei de biți, valoarea maximă absolută a numărului care poate fi scris este limitată.

Fie lungimea grilei de biți un număr pozitiv./V, numărul maxim este

?^((Dmax - eu ~ 1

De exemplu, când N= 8:

Liu) max \u003d Yu 8 - 1 \u003d 9999999 (| 0);

L (2) max - 2 8 - 1 \u003d 256 - 1 \u003d 257 (| 0) \u003d 1111111 (2);

A ( 1 6) max \u003d 16 8 - 1 \u003d 4294967296 - 1 \u003d 4294967295 (10) \u003d RRRRRRR (16) .

Astfel, pentru aceeași lungime a grilei de biți N=8 maxim în valoare absolută A (16)P1ax > A (10)P1ax > A (2)gpax, i.e. cu cât mai mulți #, cu atât mai mult L ((?)max.

Serii naturale de numere în diverse sisteme numerice

Zecimal

Binar

octal

hexazecimal

Traducere în sisteme de numere poziționale

Convertiți în sistemul numeric zecimal. Orice număr Nîn sistemul numeric pozițional poate fi reprezentat ca polinom

Pentru a converti în sistemul zecimal, calculăm o astfel de sumă.

De exemplu, numărul 253,24 este 10 în formă zecimală normală (

Exemplul 2.1. Convertiți numărul binar 1101.01(2) în sistemul numeric zecimal.

Sistemul de numere binare folosește cele două cifre 0 ȘI 1 ȘI NUMĂRUL binar 1 1 01.012 pentru a reprezenta numere (

TU 2 = 1101,01 2 = 1 2 3 + 1 2 2 + 0 2 + 1 2° + 0 2 _| + 1 2 -2 =

“=8 + 4 + 0+1+0+1/4= 14,25 10 .

Dacă, conform regulilor aritmeticii zecimale, efectuăm acțiuni în partea dreaptă a ecuației de mai sus, obținem echivalentul zecimal al unui număr binar:

1101,01 2 = 8 + 4 + 0+ 1 +0 + 1/4 = 14,25 10 .

Exemplul 2.2. Numărul octal 53,2 8 (# = 8) pentru a converti în sistemul numeric zecimal:

2560 + 240 + 7 + 8/16 = 2807,25 10 .

Conversia numerelor dintr-un sistem de numere zecimal într-un sistem de numere arbitrar cu o bază Reguli de traducere întreaga parte numărul zecimal este după cum urmează. Partea întreagă a numărului zecimal trebuie împărțită succesiv la c(baza unui sistem de numere arbitrar) până când numărul zecimal devine zero. Resturile obținute prin împărțire și scrise în ordine, începând cu ultimul rest, sunt cifrele numărului sistemului de numere ^-ary.

Reguli de traducere parte fracționată următorul număr zecimal. Partea fracțională a numărului zecimal trebuie înmulțită succesiv cu (baza unui sistem arbitrar) și partea întreagă trebuie separată până când devine egală cu zero sau se atinge precizia de translație specificată.

Părțile întregi ale rezultatelor înmulțirii, în ordinea corespunzătoare primirii lor, constituie un număr în noul sistem.

Exemplul 2.4. Convertiți numărul 26,625 10 în sistemul de numere binar.

Traducem partea întreagă a numărului:

  • 26: 2 = 13, rest 0;
  • 13:2 = 6, rest 1;
  • 6:2 = 3, restul este 0;
  • 3:2=1, restul este 1;
  • 1: 2 = 0, restul este 1.

Numărul zecimal a devenit zero, împărțirea s-a terminat. Rescriem toate resturile de jos în sus și obținem numărul binar 11010 2 .

  • 0,625 2 = 1,250, parte întreagă 1;
  • 0,250 2 = 0,500, parte întreagă 0;
  • 0,500 2 = 1,000, parte întreagă 1;
  • 0,000 2 = 0,000, parte întreagă 0.

Partea întreagă a devenit egală cu zero. Rescriem părțile întregi ale rezultatelor înmulțirii de sus în jos și obținem numărul binar 0,1010 2 .

Exemplul 2.5. Convertiți numărul 70,05 10 în sistemul de numere octale cu o precizie de a 4-a cifră.

Traducem partea întreagă a numărului:

  • 70: 8 = 8, rest 6;
  • 8:8=1, restul este 0;
  • 1: 8 = 0, restul este 1.

Numărul zecimal a devenit zero, împărțirea s-a terminat. Rescriem toate resturile de jos în sus și obținem numărul octal 106 8 .

Conversia părții fracționale a unui număr:

  • 0,05 8 = 0,40, parte întreagă 0;
  • 0,40 8 = 3,20, parte întreagă 3;
  • 0,30 8 = 2,40, parte întreagă 2;
  • 0,40 8 = 3,20, parte întreagă 3.

Partea întreagă nu a devenit egală cu zero, se obține o serie infinită, procesul de traducere este finalizat, deoarece a fost atinsă precizia specificată. Rescriem părțile întregi ale rezultatelor înmulțirii de sus în jos și obținem numărul octal 0,0323 8 .

Exemplul 2.6. Convertiți numărul 76,05 10 în sistemul numeric hexazecimal cu o precizie de a 4-a cifră.

Traducem partea întreagă a numărului:

  • 76: 16 \u003d 4, restul este 12 - "C;
  • 4: 16 = 0, restul este 4.

Numărul zecimal a devenit zero, împărțirea s-a terminat. Rescriem toate resturile de jos în sus și obținem numărul hexazecimal 4C 16.

Conversia părții fracționale a unui număr:

  • 0,05 16 = 0,80, parte întreagă 0;
  • 0,80 16 \u003d 12,80, parte întreagă 12 -> C;
  • 0,80 16 \u003d 12,80, parte întreagă 12 -> C;
  • 0,80 -16= 12,80, parte întreagă 12 -> C.

Partea întreagă nu a devenit egală cu zero, se obține o serie infinită, procesul de traducere este finalizat, deoarece a fost atinsă precizia specificată. Rescriem părțile întregi ale rezultatelor înmulțirii de sus în jos și obținem numărul hexazecimal 0,0ССС 16 .

Exemplul 2.7. Convertiți numărul 6610 într-un sistem de numere arbitrar, de exemplu, cu o bază c = 5.

Traducem partea întreagă a numărului:

  • 66: 5 = 13, rest 1;
  • 13:5 = 2, restul 3;
  • 2:5 = 0, restul este 2.

Numărul zecimal a devenit zero, împărțirea s-a terminat. Rescriem toate resturile de jos în sus și obținem numărul de cinci ori 231 5 .

Convertiți din binar în octal și hexazecimal. Există un algoritm simplificat pentru acest tip de operație.

Traducerea întregii părți. Numărul 2 este ridicat la puterea necesară pentru a obține baza sistemului în care doriți să traduceți. Pentru sistemul octal (8 = 23) obținem numărul 3 (triada), pentru sistemul hexazecimal (16 = 24) obținem numărul 4 (tetradă).

Împărțim numărul tradus în numărul de cifre, egal cu 3 pentru sistemul octal și egal cu 4 pentru sistemul numeric hexazecimal.

Să convertim triadele conform tabelului de triade ale sistemului octal și tetradelor conform tabelului de tetrade pentru sistemul numeric hexazecimal (Tabelul 2.3).

Exemplul 2.8. Convertiți numărul binar 101110 2 în sisteme de numere octale și hexazecimale:

  • octal - 101 110 -> 56 8 ;
  • hex - 0010 1110 -> 2 E] în.

Traducere fracționată. Algoritmul pentru conversia părții fracționale din sistemul de numere binar în sistemele de numere octale și hexazecimale este similar cu algoritmul pentru părți întregi ale unui număr,

Tabelul triadelor și tetradelor

dar defalcarea în triade și tetrade merge la dreapta punctului zecimal, cifrele lipsă sunt completate cu zerouri la dreapta.

Exemplul 2.9. Convertiți 11101.01011 2 în sisteme de numere octale și hexazecimale:

  • octal - 011 101,010 110 -> 35,26 8 ;
  • hex - 0001 1101,0101 1000 -> 1Z),58, 6 .

Convertiți din sisteme octale și hexazecimale în binar.

Pentru acest tip de operație, există un algoritm de flip simplificat. Pentru sistemul octal, convertim conform tabelului in triplete: 0->000 4 -> 100;

  • 1 -> 001 5 -> 101;
  • 2 -> 010 6 -> 110;
  • 3 -> 011 7 -> 111.

Pentru hexazecimal - convertiți conform tabelului în cvartete:

A -> 1010

ÎN-> 1011

Exemplul 2.10. Convertiți numărul octal 2438 și numărul hexazecimal 7С 16 în sistem de numere binar:

  • 243 8 -> SW 100011 2 ;
  • 7С 16 -> 1111 1100 2 .

Aritmetică binară

Plus. Tabelul de adunare binară este simplu:

  • 0 + 0 = 0;
  • 0+1 = 1;
  • 1+0=1;
  • 1 + 1 = 10;
  • 1 + 1 + 1 = 11.

Când se adaugă două unități, cifra depășește și are loc un transfer la cifra cea mai mare. O depășire are loc atunci când valoarea numărului din acesta devine egală sau mai mare decât baza.

Exemplul 2.11. Efectuați adunarea binară.

1 1 1 Transfer la ordine superioară

1 1 0 0 0 1 = 49 - primul termen

  • 1 1 0 1 1 = 27 - al doilea termen
  • 1 0 0 1 1 0 0 = 76 - suma

Scăderea binară. Luați în considerare regulile de scădere a unui număr mai mic dintr-un număr mai mare. În cel mai simplu caz, pentru fiecare bit, regulile binare de scădere sunt

  • 2 2 11
  • 0 10 1

Când se face o scădere (0 - 1), se face un împrumut din ordinul superior. Semnul întrebării înseamnă că cifra minuendului se modifică ca urmare a unui împrumut conform regulii: la scăderea (0-1), se obține o unitate în cifra diferenței, cifrele diminuate, începând de la următoarea, sunt inversate (inversate) până la prima unitate de contor (inclusiv). După aceea, se face o scădere din biții modificați ai celui redus.

Luați în considerare un exemplu de scădere a numerelor cu mai multe cifre (un număr mai mic este scăzut dintr-un număr mai mare).

Exemplul 2.12. Scăderea în sistemul de numere binar:

  • 0 111 Modificarea reducerii creditului
  • 1 1 0 0 0 1 = 49 - în scădere
  • 11011 - 21 - descăzut
  • 10 1 1 0 = 22 - diferență

Multiplicare. Operația de înmulțire se efectuează folosind tabelul înmulțirii după schema uzuală (folosită în sistemul numeric zecimal) cu înmulțirea succesivă a multiplicandului cu următoarea cifră a multiplicatorului.

Exemplul 2.13. Înmulțirea în sistemul de numere binar:

  • *1011
  • 1011
  • 110111

Divizia. Când împărțiți pe o coloană, trebuie să efectuați înmulțirea și scăderea ca rezultate intermediare.

Scrierea numerelor zecimale (zecimală codată binar)

Uneori este convenabil să stocați numere în memoria procesorului în formă zecimală (de exemplu, în scopuri de afișare). Pentru a scrie astfel de numere, se folosesc coduri binare-zecimale. Patru biți binari (tetrade) sunt folosiți pentru a scrie o zecimală. Cu patru biți, pot fi codificate 16 cifre (2 4 = 16). Combinațiile suplimentare în BCD sunt interzise. Corespondența codului binar-zecimal și a cifrelor zecimale este dată în tabel. 2.4.

Tabelul 2.4

Corespondența codului zecimal binar și a cifrelor zecimale

Cod zecimal binar

Cod zecimal

Combinațiile rămase ale codului binar în tetradă sunt interzise.

Exemplul 2.14. Notați codul BCD al numărului 1258 10 -

1258 sh = 0001 0010 0101 1000 2 .

Primul caiet conține numărul 1, al doilea - 2, al treilea - 5, iar ultimul caiet conține numărul 8. În acest exemplu a fost nevoie de patru tetrade pentru a scrie numărul 1258. Numărul de celule de memorie ale microprocesorului depinde de capacitatea acestuia. Cu un procesor pe 16 biți, întregul număr se va încadra într-o singură celulă de memorie.

Exemplul 2.15. Notează codul binar al numărului 589 10:

589 10 = 0000 0101 1000 1001 2 .

În acest exemplu, trei tetrade sunt suficiente pentru a scrie un număr, dar celula de memorie este de 16 biți. Prin urmare, cea mai înaltă tetradă este umplută cu zerouri. Ele nu modifică valoarea cifrei.

Când scrieți numere zecimale, este adesea necesar să scrieți semnul numărului și punctul zecimal (în țările vorbitoare de limbă engleză, un punct). BCD este adesea folosit pentru a forma un număr de telefon sau pentru a forma coduri de serviciu telefonic. În acest caz, pe lângă cifrele zecimale, sunt adesea folosite simbolurile „*” sau „#”. Pentru a scrie aceste caractere în cod binar-zecimal, se folosesc combinații interzise (Tabelul 2.5).

Tabelul 2.5

Potrivirea caracterelor zecimale binare și complementare

Destul de des, o celulă de memorie (8, 16 sau 32 de biți) este alocată în memoria procesorului pentru a stoca o cifră zecimală. Acest lucru se face pentru a crește viteza programului. Pentru a distinge acest mod de scriere a unui număr zecimal codat binar de modul standard de scriere a unui număr zecimal, așa cum se arată în exemplu, se numește o formă compactă a numărului zecimal codificat binar.

Exemplul 2.16. Scrieți codul BCD dezambalat al numărului 1258 10 pentru un procesor pe 8 biți:

  • 1258 00000001
  • 00000010 00000101 00001000

Prima linie conține numărul 1, a doua - 2, a treia - 5, iar ultima linie conține numărul 8. În acest exemplu, au fost necesare patru linii (celule de memorie) pentru a scrie numărul 1258.

Însumarea numerelor binare-zecimale. Însumarea numerelor zecimale binare se poate face conform regulilor aritmeticii binare obișnuite și apoi se poate efectua o corecție zecimală binară. Corecția BCD constă în verificarea fiecărei tetrade pentru coduri valide. Dacă se găsește o combinație interzisă în orice tetradă, atunci aceasta indică o depășire. În acest caz, este necesar să se efectueze o corecție BCD. Corecția BCD constă în însumarea suplimentară a numărului șase (numărul de combinații interzise) cu tetrada în care a avut loc un debordare sau a avut loc un transfer la tetrada superioară. Iată un exemplu:

  • 0 0 0 1 10 0 0 0 0 0 1 0 0 1 1
  • 0 0 10 10 11

O combinație interzisă a fost găsită în al doilea caiet. Efectuăm corecția binară-zecimală: însumăm numărul șase cu a doua tetradă:

  • 0 0 10 10 11
  • 0 0 0 0 0 1 1 0
  • 0 0 1 1 0 0 0 1

Forme de reprezentare într-un calculator a datelor numerice

În matematică se folosesc două forme de scriere a numerelor: naturală (numărul se scrie în formă naturală naturală) și normală (numărul poate fi scris diferit în funcție de restricțiile impuse formei).

Exemple formă naturală intrări de număr:

  • 15300 este un număr întreg; 0,000564 - fracția proprie;
  • 6,4540 este o fracție improprie.

Exemplu forma normala intrări de același număr 25 340 în funcție de restricțiile impuse formei normale:

25 340 = 2,534 - 10 4 = 0,2534 - 10 5 = 2534000 - 10" 2 etc.

În calcul, cu reprezentarea naturală a numerelor, se stabilește lungimea grilei de biți, precum și o distribuție fixă ​​a părților fracționale și întregi. Prin urmare, acest mod de reprezentare a numerelor se numește cu punct fix.

Reprezentarea unui număr în formă normală se numește reprezentare punctul de plutire(poziția virgulei se schimbă).

Numerele în virgulă mobilă sunt utilizate în cea mai mare parte de computerele mainframe și de computerele cu virgulă fixă, dar o serie de mașini lucrează cu numere în aceste două formate.

Natura programării depinde de modul în care sunt reprezentate numerele.

Deci, atunci când scrieți programe pentru computere care funcționează într-un sistem cu punct fix, trebuie să urmăriți poziția virgulei și să efectuați operațiuni cu punctul de plutire sunt necesare mai multe micro-operații, ceea ce reduce viteza computerului.

virgulă fixă ​​(punct)

În calculatoarele moderne, modul de reprezentare a numerelor cu punct fix în calcul este folosit în principal pentru reprezentarea numerelor întregi.

Deoarece numerele sunt pozitive și negative, atunci în grila de biți, atunci când sunt reprezentate automat, unul sau doi biți (pentru codurile modificate) sunt alocați sub semnul numărului, iar biții rămași se formează câmp numeric. Biții de semn, care pot fi localizați atât la începutul cât și la sfârșitul numărului, conțin informații despre semnul numărului. Semnul „+” este codificat ca zero, semnul „-” este codificat ca unul. Pentru codurile modificate, semnul „+” este codificat cu două zerouri, semnul „-” este codificat cu două unități. Coduri modificate introduse pentru detectare rezultat greșit calcule, adică când rezultatul depășește dimensiunea maximă a grilei de biți și este necesară o transferare de la un bit semnificativ.

De exemplu, ca rezultat al efectuării operațiilor într-un bit cu semn, numărul 01 indică o depășire pozitivă a grilei de biți, iar numărul 10 indică o depășire negativă a grilei de biți.

Câmpul număr are un număr constant de cifre - P. Gama de reprezentare a numerelor întregi este limitată la valori -(2 p- 1) și +(2" - 1).

De exemplu, în binar, folosind o grilă de 6 biți, numărul 7 în formă de virgulă fixă ​​poate fi reprezentat ca

unde cifra din stânga punctului este semnul numărului, iar cifrele din dreapta punctului sunt mantisa numărului din codul direct. Se presupune aici că virgula este fixată în dreapta cifrei cel mai puțin semnificative, iar punctul din imaginea numărului în acest caz separă pur și simplu bitul de semn de mantisa numărului.

În viitor, acest tip de reprezentare a unui număr sub formă de mașină va fi adesea folosit în exemple. Puteți folosi o altă formă de reprezentare a unui număr în formă de mașină:

unde bitul de semn este cuprins între paranteze drepte.

Numărul de cifre din grila de biți, rezervat pentru imaginea mantisei unui număr, determină intervalul și acuratețea reprezentării unui număr în virgulă fixă. Numărul binar maxim în valoare absolută este reprezentat de unități din toate cifrele, cu excepția semnului unu, i.e. pentru număr întreg

|/1|max = (2 (P - 1) - 1),

Unde P - lungimea completă a grilei de biți.

În cazul unei grile de 16 biți

|L|max = (2(16- 1)- 1) = 3276710,

acestea. intervalul de reprezentare a numerelor întregi în acest caz va fi de la +3 276710 la -3276710.

Pentru cazul în care virgula este fixată în dreapta cifrei celei mai puțin semnificative a mantisei, i.e. pentru numere întregi, numere al căror modul este mai mare decât (2 (P- 1) - 1) și mai puțin de unu, nu sunt prezentate în formă fixă. Numerele, în valoare absolută mai mici decât unitățile cifrei celei mai puțin semnificative din grila de biți, sunt numite în acest caz mașină zero. Zero negativ este interzis.

În unele cazuri, când este posibil să se opereze numai cu module de numere, întreaga grilă de cifre, inclusiv cea mai semnificativă cifră, este atribuită pentru a reprezenta un număr, ceea ce permite extinderea gamei de afișare a numerelor.

Reprezentarea numerelor negative în format punct fix

În calculatoare, pentru a simplifica efectuarea operațiilor aritmetice, se folosesc coduri binare speciale pentru reprezentarea numerelor negative: inversă și suplimentară. Cu ajutorul acestor coduri se simplifică determinarea semnului rezultatului unei operații în adunare algebrică. Operația de scădere (sau adunare algebrică) se reduce la adunarea aritmetică a operanzilor, se facilitează dezvoltarea semnelor de depășire a grilei de biți. Ca urmare, dispozitivele computerizate care efectuează operații aritmetice sunt simplificate.

Se știe că una dintre modalitățile de a efectua o operație de scădere este schimbarea semnului subtraendului la opus și adăugarea lui la minuend:

A-B \u003d A + (-B).

Aceasta înlocuiește operația de scădere aritmetică cu operația de adunare algebrică, care poate fi efectuată folosind sumatori binari.

Pentru reprezentarea automată a numerelor negative se folosesc coduri: directe, suplimentare, inverse. O definiție simplificată a acestor coduri poate fi dată după cum urmează. Dacă numărul Aîn binar normal (direct cod binar) a reprezenta ca

apoi numărul -A in acelasi cod arata ca

[-D] P r - 1-? 7 / gth / 7 _| Y L _2.... Y Y | a 0,

si in verso cod (invers), acest număr va arăta ca

[-D] 0 b - 1*^77 *2/7-1 *2 /g _ A 0,

A, - 1 dacă a 1- 0, i, - = 0 dacă i, = 1,

i, este cifra / "-a cifră a numărului binar. Prin urmare, la trecerea de la codul direct la invers, toate cifrele cifrelor numărului Matisse sunt inversate.

Apoi numărul -A V adiţional codul este afișat ca

Astfel, pentru a obține un cod suplimentar de numere negative, trebuie mai întâi să inversați partea digitală a numărului original, rezultând codul său invers, apoi să adăugați unul la bitul cel mai puțin semnificativ al părții digitale a numărului.

Complementul în doi al unui număr se obține prin înlocuirea acestuia cu un număr nou, care îl completează cu un număr egal cu greutatea cifrei care urmează celei mai semnificative cifre din grila de biți folosită pentru a reprezenta mantisa unui număr în virgulă fixă. format. Prin urmare, un astfel de cod numeric se numește suplimentar.

Imaginați-vă că avem doar două cifre pentru a reprezenta numere în zecimală. Atunci numărul maxim care poate fi afișat va fi 99, iar greutatea celui de-al treilea ordin superior, inexistent, va fi 10 2 , adică. 100. În acest caz, pentru numărul 20, numărul suplimentar va fi 80, care completează de la 20 la 100 (100 - 20 = 80). Prin urmare, prin definiție, scăderea

poate fi înlocuit cu adăugarea:

Aici, cea mai mare unitate trece dincolo de grila de biți alocată, în care rămâne doar numărul 30, adică. rezultatul scăderii a 20 din 50.

Acum luați în considerare un exemplu similar pentru numerele reprezentate de cod binar pe 4 biți. Să găsim un număr suplimentar pentru 0010 2 = 2 10 . Este necesar să scădem 0010 din 0000, obținem 1110, care este codul suplimentar 2. Bitul afișat între paranteze drepte nu există de fapt. Dar, din moment ce avem o grilă cu 4 rânduri, este practic imposibil să facem o astfel de scădere și, cu atât mai mult, încercăm să scăpăm de scădere. Prin urmare, codul numeric suplimentar este obținut în modul descris mai devreme, adică. mai întâi, se obține codul invers al numărului, apoi se adaugă unul. După ce am făcut toate acestea cu numărul nostru (2), este ușor de observat că obținem un răspuns similar.

Subliniem că complementul a doi și codurile inverse sunt folosite doar pentru a reprezenta numere binare negative în formă de virgulă fixă. Numerele pozitive din aceste coduri nu își schimbă imaginea și sunt prezentate ca într-un cod direct.

Astfel, cifrele digitale ale unui număr negativ din codul direct rămân neschimbate, iar una este scrisă în partea semnului.

Să ne uităm la câteva exemple simple.

Șapte în cod direct sunt reprezentate după cum urmează:

Pr = 0,00011 1 2 .

Numărul -7 în cod direct

[-7] pr = 1,000111 2 ,

iar în codul invers va arăta ca

[-7] rev = 1,111000 2 ,

acestea. cele sunt înlocuite cu zerouri și zerourile cu unu. Același număr în complementul a doi va fi

[-7] extra = 1,111001 2 .

Să considerăm încă o dată cum procedura de scădere folosind reprezentarea complementului a doi se reduce la procedura de adunare. Scădeți numărul 7 din 10: 10-7 = 3. Dacă ambii operanzi sunt prezentați în cod direct, atunci procedura de scădere se efectuează după cum urmează:

0.001010 -1.000111 0.000011 =310.

Iar dacă se scade, i.e. -7, reprezintă în codul complementului a doi, atunci procedura de scădere se reduce la procedura de adunare:

0.001010 + 1,111001 1 0.000011 =310.

În prezent, computerele folosesc în mod obișnuit complementul a doi pentru a reprezenta numere negative în format de virgulă fixă.

Numere reale

Sunt numite mărimile numerice care pot lua orice valoare (întreg și fracționar). numere reale.

Numerele reale din memoria computerului sunt reprezentate sub formă de virgulă mobilă. Forma în virgulă mobilă utilizează reprezentarea numerelor reale eu ca produs al mantisei T bazat pe sistemul numeric Rîntr-o oarecare măsură P, Care e numit în ordine:

eu= w r p.

De exemplu, numărul 25.324 poate fi scris astfel:

Aici T= 0,25324 - mantisa; P= 2 - ordine. Ordinea indică câte poziții și în ce direcție ar trebui să „înoate peste”, adică. deplasare, punct zecimal în mantisă. De aici și numele de „virgulă flotantă”.

Cu toate acestea, sunt adevărate și următoarele egalități:

25.324 \u003d 2.5324-10 1 \u003d 0.0025324 10 4 \u003d 2532.4 - 10 "2 etc.

Se dovedește că reprezentarea unui număr în formă de virgulă mobilă este ambiguă? Pentru a evita ambiguitatea, computerele folosesc o reprezentare normalizată a unui număr sub formă de virgulă mobilă. Mantisa din reprezentarea normalizată trebuie să îndeplinească condiția

Cu alte cuvinte, mantisa este mai mică de unu și prima cifră semnificativă nu este zero. Prin urmare, pentru numărul considerat, reprezentarea normalizată va fi 0,25324 10 2 . Diferite tipuri de calculatoare folosesc moduri diferite de a reprezenta numerele în virgulă mobilă. De exemplu, luați în considerare una dintre posibile. Să fie reprezentat un număr real în memoria computerului sub forma unei virgulă mobilă în sistemul numeric binar (R= 2) și ocupă o celulă de 4 octeți. Celula trebuie să conțină următoarele informații despre număr: semnul numărului, exponent și cifre semnificative mantisa. Iată cum sunt aranjate aceste informații într-o celulă:

Semnul numărului este stocat în bitul cel mai semnificativ al primului octet. În acest bit, zero înseamnă plus, iar unu înseamnă minus. Cei 7 biți rămași ai primului octet conțin ordinea mașinii. Următorii trei octeți stochează cifrele semnificative ale mantisei.

Numerele binare din intervalul de la 0000000 la 1111111 sunt plasate în șapte cifre binare. În sistemul zecimal, aceasta corespunde intervalului de la 0 la 127 - un total de 128 de valori. Semnul comenzii nu este stocat în celulă. Dar ordinea, evident, poate fi atât pozitivă, cât și negativă. Este rezonabil să împărțiți aceste 128 de valori în mod egal între valorile de ordine pozitive și negative.

În acest caz, se stabilește următoarea corespondență între ordinea mașinii și ordinea adevărată (să-i spunem matematică):

Comanda masinii

Ordinea matematică

Dacă notăm ordinea mașinii Domnulși matematică - R, atunci relaţia dintre ele este exprimată prin formula

Domnul = p+ 64.

Deci, ordinea mașinii este deplasată față de ordinea matematică cu 64 de unități și are doar valori pozitive. Atunci când efectuează calcule în virgulă mobilă, procesorul ia în considerare acest offset.

Formula rezultată este scrisă în sistem zecimal. Deoarece 64 | 0 = 40 16 (verificați!), atunci în hexazecimal formula va lua forma

Domnul 1c \u003d Rb + 40 16.

Și în sfârșit, în binar

Domnul 2 \u003d p 2 + yuo 0000 2 .

Acum putem scrie reprezentarea internă a numărului 25.324 sub formă de virgulă mobilă.

  • 1. Să îl traducem într-un sistem de numere binar cu 24 de cifre semnificative:
  • 25,324 10 = 11001,0101001011110001101 2 .
  • 2. Să scriem sub forma unui număr binar normalizat în virgulă mobilă:
  • 0,110010101001011110001101 Yu 101 .

Aici mantisa, baza sistemului numeric (2 10 = 10 2) și ordinea (5 10 = 101 2) sunt scrise în binar.

3. Calculați comanda mașinii:

Domnul 2 = 101 + 100 0000= 100 0101.

4. Notați reprezentarea numărului din celula de memorie:

Pentru a obține reprezentarea internă a numărului negativ -25.324, este suficient să înlocuiți 0 din bitul de semn cu 1 din codul obținut mai sus.

Și în formă hexazecimală:

Nu există nicio inversare, ca în cazul numerelor negative cu virgulă fixă, aici.

În cele din urmă, luați în considerare problema intervalului de numere reprezentabile sub formă de virgulă mobilă. Evident, numerele pozitive și negative sunt situate simetric în jurul zero. Prin urmare, numerele maxime și minime sunt egale în valoare absolută: eu tah =|/? T; n |. Cel mai mic număr absolut este zero. Cu ce ​​sunt eu egal? Acesta este numărul cu cea mai mare mantise și cel mai mare exponent:

0,11111111111111111111111 u5 111Sh.

Dacă este convertit la sistemul zecimal, obțineți

L max \u003d (1 -2- 24) -2 64 \u003d 10 19.

Evident, intervalul numerelor reale este mult mai larg decât intervalul numerelor întregi. Dacă, în urma calculelor, se obține un număr, modulo mai mare decât eu sunt tah atunci procesorul este întrerupt. Această situație se numește depășire în virgulă mobilă. Modul cea mai mică valoare diferită de zero este

(1/2) 2 -64 = 2 -66 .

Orice valoare care este mai mică decât valoarea dată în valoare absolută este percepută de procesor ca zero.

După cum se știe din matematică, mulțimea numerelor reale este infinită și continuă. Mulțimea numerelor reale care pot fi reprezentate în memoria computerului sub formă de virgulă mobilă este limitată și discretă. Fiecare valoare următoare este obținută prin adăugarea celei anterioare la mantise în ultimul (al 24-lea) bit. Numărul de numere reale care pot fi reprezentate exact în memoria mașinii este calculat prin formula

N = 2"-(U-L+ 1)+ 1.

Aici t- numărul de cifre binare ale mantisei; U- valoare maximă ordine matematică; L- valoarea minima a comenzii. Pentru varianta pe care am considerat-o (/ = 24, U= 63, L= -64) se dovedește

N=2 146683548.

Toate celelalte numere care nu se încadrează în acest set, dar sunt în intervalul valorilor acceptabile, sunt reprezentate în memorie aproximativ (mantisa este tăiată la al 24-lea bit). Și deoarece numerele au erori, atunci rezultatele calculelor cu aceste numere vor conține și erori. Din cele spuse, rezultă concluzia: calculele cu numere reale într-un calculator se fac aproximativ.

Unități de informare

Bit (engleză, cifră binară; de asemenea, un joc de cuvinte: engleză, bit - un pic) (o cifră binară în sistemul de numere binar) este una dintre cele mai cunoscute unități de măsurare a cantității de informații.

Nibble (eng, nibble, nybble), sau nibble, este o unitate de informație egală cu patru cifre binare (biți); convenabil prin faptul că poate fi reprezentat printr-o singură cifră hexazecimală, adică este o cifră hexazecimală.

Byte (în engleză, byte, este o abreviere a expresiei BinarYTErm - „termen binar”) este o unitate de stocare și procesare a informațiilor digitale. În sistemele de calcul moderne, un octet este considerat egal cu opt biți, caz în care poate lua una dintre 2 8 = 256 de valori diferite (stări, coduri). Cu toate acestea, în istoria computerelor, sunt cunoscute soluții cu o dimensiune diferită de octeți, de exemplu 6 biți, 36 de biți în PDP- 10. Prin urmare, uneori în standardele informatice și în documentele oficiale, termenul „octet” (octet latin) este folosit pentru a desemna fără ambiguitate un cuvânt de 8 biți. În majoritatea arhitecturilor de calcul, un octet este cel mai mic set de date adresabil independent.

Un cuvânt de mașină este o valoare dependentă de mașină și de platformă, măsurată în biți sau octeți (trits sau trăsături), egală cu lățimea de biți a registrelor procesorului și/sau lățimea de biți a magistralei de date (de obicei o putere de doi ). Pe computerele timpurii, dimensiunea cuvântului a coincis și cu dimensiunea minimă a informațiilor adresabile (adâncimea de biți a datelor situate la aceeași adresă); pe computerele moderne, unitatea minimă de informație adresabilă este de obicei un octet, iar un cuvânt este format din mai mulți octeți. Cuvântul mașină definește următoarele caracteristici ale platformei hardware:

  • adâncimea de biți a datelor procesate de procesor;
  • adâncimea de biți a datelor adresate (lățimea de biți a magistralei de date);
  • valoarea maximă a unui tip întreg fără semn suportată direct de procesor: dacă rezultatul unei operații aritmetice depășește această valoare, atunci are loc o depășire;
  • volum maxim memorie cu acces aleator adresate direct de procesor.

Multiplii zecimali și binari ai prefixelor

Prefixe binare - prefixe în fața unităților de măsură, indicând înmulțirea acestora cu 2 10 \u003d 1024. Datorită apropierii numerelor 1024 și 1000, prefixele binare sunt construite prin analogie cu prefixele zecimale SI standard. Fiecare prefix binar se obține prin înlocuirea ultimei silabă a prefixului zecimal corespunzător cu bi (din latină binarius - binar). Prefixele binare sunt folosite pentru a forma unități de informații care sunt multipli de biți și octeți. Prefixele au fost introduse de Comisia Electrotehnică Internațională (IEC) în martie 1999. Ele arată astfel (Tabelul 2.6).

Performanţă informații textîn calculator.

Codări ASCII și Unicode

Pentru a reprezenta informații textuale într-un computer, un anumit cod este asociat cu o afișare grafică a fiecărui caracter. Set de caractere / codificare (engleză, set de caractere) - un tabel care specifică codificarea unui set finit de caractere alfabetice (de obicei elemente de text: litere, cifre, semne de punctuație). Un astfel de tabel mapează fiecărui caracter o secvență de unul sau mai multe caractere dintr-un alt alfabet, cum ar fi zerouri și uni (biți).

ASCII(ing. Cod standard american pentru schimbul de informații) - tabel de codificare standard american pentru caractere tipărite și unele coduri speciale (coduri de la 0x00 la 0x1 F).

ASCII este o codificare pentru reprezentarea cifrelor zecimale, a alfabetului latin și național, prepi-

Prefixe binare pentru formarea unităților de informație

Binar

consolă

Similar

zecimal

consolă

Abrevieri IEC pentru biți, octeți

Valoarea cu care se înmulțește valoarea inițială

kibi/kibi (2 10)

Kibit, KiB/KV

mobilier/teY (2 20)

Mibit, MiB/MSh

2 20 = 1 048 576

gibi/§іbі (2 30)

Gibit, GiB/vSh

2 30 = 1 073741 824

tebiDehi (2 40)

tera (10 12)

Tibit, TiB/TSh

2 40 = 1 099511 627776

pebi/pebi (2 50)

peta (10 15)

Pibit, PiB/R1V

2 50 = 1 125 899906842624

xby/exy (2 60)

exa (10 18)

Eibit, EiB/ESH

2 60 = 1 152921504606846976

zebi/gebi (2 70)

zetta (10 21)

Zibit, ZiB/71V

2 70 = 1 180591620717411 303424

yobi/yobi (2 80)

yotta (10 24)

Yibit, YiB/U1V

2 80 = 1 208925819614629 174706 176

cunoștințe și caractere de control. Dezvoltat inițial (în 1963) ca pe 7 biți, după utilizarea pe scară largă a octetului de 8 biți ASCII a început să fie perceput ca jumătate din cei 8 biți. Calculatoarele folosesc de obicei extensii ASCII c a implicat al 8-lea bit și a doua jumătate a unui alt tabel de coduri (de exemplu, KOI 8).

Unicode sau Unicode (Unicode engleză) este un standard de codificare a caracterelor care vă permite să reprezentați semnele aproape tuturor limbilor scrise.

Standardul a fost propus în 1991 de către organizația non-profit Unicode Consortium (Unicode Inc.). Aplicarea acestui standard face posibilă codificarea foarte număr mare caractere din diferite scripturi: în documentele Unicode pot coexista caractere chinezești, simboluri matematice, litere ale alfabetului grecesc, alfabet latin și chirilic; astfel comutarea paginilor de cod devine inutilă.

Standardul constă din două secțiuni principale: setul de caractere universal (ing. UCS, set universal de caractere) și familii de codare (ing. utf, format de transformare Unicode). Set universal caractere specifică o corespondență unu-la-unu a caracterelor cu codurile care reprezintă numere întregi nenegative. Familia de codificare definește reprezentarea mașină a codurilor UCS.

Pentru a determina formatul de reprezentare Unicode, o semnătură este scrisă la începutul fișierului text - cod FEFF(nu există un simbol cu ​​un astfel de cod în Unicode), numit și marca de ordine a octetilor (în engleză, marca de ordine a octetilor, BOM). De asemenea, această metodă este uneori folosită pentru a indica formatul UTF 8, deși conceptul de endianness nu se aplică acestui format.

Codări Unicode de bază:

  • UTF-8 (EF BB BF);
  • UTF-16BE (FE FF);
  • UTF-16LE (FF FE);
  • UTF-32BE (0000FEFF);
  • UTF-32LE (FF FE0000).
  • + ^m-2Rm 2 + + + Yao
  • + ^m-2Rm 2 + + + Yao
  • + ^m-2Rm 2 + + + Yao
  • + ^m-2Rm 2 + + + Yao
  • + ^m-2Rm 2 + + + Yao
  • + ^m-2Rm 2 + + + Yao
  • + ^m-2Rm 2 + + + Yao
  • - ^] suplimentar - 1-^1rev

aritmetică -- unitate logică

aritmetică -- boolean dispozitiv (ALU) - partea centrală a procesorului care efectuează operații aritmetice și logice.

ALU implementează o parte importantă a procesului de prelucrare a datelor. Constă în efectuarea unui set de operații simple. Operațiile ALU se împart în trei categorii principale: operații aritmetice, logice și pe biți. O operație aritmetică este o procedură de prelucrare a datelor ale cărei argumente și rezultat sunt numere (adunare, scădere, înmulțire, împărțire, ...). O operație logică este o procedură care construiește o instrucțiune complexă (operații ȘI, SAU, NU, ...). Operațiile pe biți implică de obicei deplasări.

ALU constă din registre, un sumator cu circuite logice asociate și un element de control al procesului. Aparatul funcționează în conformitate cu denumirile (codurile) operațiunilor raportate acestuia, care, la transferul de date, trebuie efectuate pe variabile plasate în registre.

Unitatea aritmetico-logică poate fi împărțită funcțional în două părți: a) o unitate de microprogram (unitate de control) care stabilește succesiunea microcomenzilor (comenzilor); b) o unitate de operare (ALU) în care este implementată o anumită secvență de microcomenzi (comenzi).

Legea procesării informațiilor este stabilită de microprogram, care este scris ca o secvență de microcomenzi A1,A2, ..., An-1,An. În același timp, se disting două tipuri de micro-comenzi: externe, adică astfel de micro-comenzi care intră în ALU din surse externe și provoacă anumite transformări ale informațiilor în aceasta (în Fig. 1, micro-comenzi A1, A2). , ..., An) și interne, care sunt generate în ALU și acționează asupra dispozitivului de microprogram, schimbând secvența naturală a microinstrucțiunilor. De exemplu, ALU poate genera semne în funcție de rezultatul calculelor: un semn de depășire, un semn al unui număr negativ, un semn de egalitate la 0 pentru toate cifrele numărului etc. În fig. 1 aceste micro-comenzi sunt desemnate p1, p2,..., rm.

Rezultatele calculelor din ALU sunt transmise prin liniile de cod de scriere y1, y2, ..., ys, către RAM. Functiile registrelor incluse in ALU: Rg1 - sumator (sau sumatori) - registrul principal al ALU, in care se formeaza rezultatul calculelor; Rg2, Rg3 - registre de termeni, factori, dividend sau divizor (în funcție de operațiunea care se efectuează); Rg4 - registru de adrese (sau registre de adrese), destinat să stocheze (uneori să formeze) adresa operanzilor și rezultatul; Rgb - k registre de index, al căror conținut este folosit pentru a forma adrese; Rg7 - i registre auxiliare, care, la cererea programatorului, pot fi acumulatori, registre index, sau folosite pentru stocarea rezultatelor intermediare.

O parte din registrele operaționale sunt accesibile programelor, adică pot fi adresate în comanda pentru a efectua operații asupra conținutului lor. Acestea includ: sumător, registre index, unele registre auxiliare.

Registrele rămase sunt inaccesibile de program, deoarece nu pot fi abordate în program. Dispozitivele de operare pot fi clasificate în funcție de tipul de informații prelucrate, de modul în care sunt procesate informațiile și de structura logică.

ALU poate funcționa cu patru tipuri de obiecte informaționale: boolean (1 bit), digital (4 biți), octet (8 biți) și adresă (16 biți). ALU efectuează 51 de operațiuni diferite de transfer sau transformare asupra acestor date. Deoarece sunt utilizate 11 moduri de adresare (7 pentru date și 4 pentru adrese), prin combinarea „modului de operare/adresare” numărul de bază al instrucțiunilor 111 este extins la 255 din 256 posibile cu un cod operațional de un octet.

Calculatoarele electronice efectuează operații aritmetice și logice, folosind două clase de variabile: numere și variabile logice.

    Numerele transportă informații despre caracteristicile cantitative ale sistemului; asupra lor se efectuează operaţii aritmetice.

variabile booleene determinați starea sistemului sau dacă acesta aparține unei anumite clase de stări (schimbarea canalului, controlul funcționării computerului conform programului etc.).

Variabilele booleene pot lua doar două valori: AdevăratȘi minciună.În dispozitivele digitale de procesare a informațiilor, acestor două valori ale variabilelor li se atribuie două niveluri de tensiune: mare - ("1" logic) și scăzută -- (0 logic"). Cu toate acestea, semnificația cantității nu este încorporată în aceste valori.

Elementele care efectuează cele mai simple operații pe astfel de semnale binare se numesc logice. Pe baza elementelor logice, sunt dezvoltate dispozitive care efectuează atât operații aritmetice, cât și logice.

În prezent, elementele logice (LE) sunt implementate folosind diverse tehnologii care determină valorile numerice ale parametrilor principali ai LE și, ca urmare, indicatorii de calitate ai dispozitivelor digitale de procesare a informațiilor dezvoltați pe baza acestora. Prin urmare, în acest manual, circuitelor și parametrilor LE ai diferitelor tehnologii li se acordă atenția cuvenită.

1 Bazele aritmetice și logice ale calculatoarelor

1.1 Fundamentele aritmetice ale calculatoarelor

În prezent, în viața de zi cu zi, pentru a codifica informațiile numerice, se folosește un sistem de numere zecimal cu o bază de 10, în care se folosesc 10 elemente de desemnare: numerele 0,1,2, ... 8,9. Prima cifră (cea mai mică) indică numărul de unități, a doua - zeci, a treia - sute etc.; cu alte cuvinte, în fiecare cifră următoare, ponderea coeficientului cifrei crește de 10 ori.

În dispozitivele de procesare a informațiilor digitale se utilizează un sistem de numere binar cu baza 2, în care se folosesc două elemente de desemnare: 0 și 1. Greutățile cifrelor de la stânga la dreapta de la cifrele inferioare la cele mai vechi cresc de 2 ori, adică au următoarea secvență: 8421. În general, aceasta arată secvența:

și este folosit pentru a converti binar în zecimal. De exemplu, numărul binar 101011 este echivalent cu numărul zecimal 43:

În dispozitivele digitale, termeni speciali sunt folosiți pentru a se referi la unități de informații de diferite dimensiuni: bit, octet, kilobyte, megaoctet etc.

Pic sau Cifră binară determină valoarea oricărui caracter dintr-un număr binar. De exemplu, numărul binar 101 are trei biți sau trei cifre. Se numește cifra din extrema dreaptă, cu cea mai mică greutate Junior iar extrema stângă, cu cea mai mare greutate, - senior.

Un octet definește un 8 biți unitate de informație, 1 octet = 2 3 biți, de exemplu, 10110011 sau 01010111 etc.,
,

Pentru a reprezenta numere cu mai multe cifre în sistemul binar, este necesar un număr mare de cifre binare. Înregistrarea este mai ușoară dacă utilizați sistemul numeric hexazecimal.

fundație sistem hexazecimal socoteala este cifra 16= , care folosește 16 elemente de desemnare: numere de la 0 la 9 și literele A, B, C, D, E, F. Pentru a converti un număr binar în hexazecimal, este suficient să împărțiți numărul binar în grupuri de patru biți: partea întreagă de la dreapta la stânga, partea fracțională de la stânga la dreapta din virgulă. Grupurile extreme pot fi incomplete.

Fiecare grup binar este reprezentat de caracterul hexazecimal corespunzător (Tabelul 1). De exemplu, numărul binar 0101110000111001 în hexazecimal este exprimat ca 5C39.

Utilizatorul este cel mai confortabil cu sistemul numeric zecimal. Prin urmare, multe dispozitive digitale, care lucrează cu numere binare, primesc și emit numere zecimale utilizatorului. În acest caz, se utilizează un cod binar-zecimal.

Cod zecimal binar se formează prin înlocuirea fiecărei cifre zecimale a unui număr cu o reprezentare binară de patru cifre a acestei cifre în cod binar (vezi Tabelul 1). De exemplu, numărul 15 este reprezentat ca 00010101 BCD (Binary Coded Decimal). În acest caz, fiecare octet conține două cifre zecimale. Rețineți că codul binar-zecimal cu această conversie nu este un număr binar echivalent cu un număr zecimal.

În prezent, în viața de zi cu zi, pentru a codifica informațiile numerice, se folosește un sistem numeric zecimal cu o bază de 10, în care se folosesc 10 elemente de desemnare: numerele 0, 1, 2, ... 8, 9. Primul (cel mai mic ) cifra indică numărul de unități, a doua - zeci, în a treia - sute etc.; cu alte cuvinte, în fiecare cifră următoare, ponderea coeficientului cifrei crește de 10 ori.

În dispozitivele de procesare a informațiilor digitale se utilizează un sistem de numere binar cu baza 2, în care se folosesc două elemente de desemnare: 0 și 1. Greutățile cifrelor de la stânga la dreapta de la cifrele inferioare la cele mai vechi cresc de 2 ori, adică au următoarea secvență: 8421. În general, aceasta arată secvența:

…2 5 2 4 2 3 2 2 2 1 2 0 ,2 -1 2 -2 2 -3 …

și este folosit pentru a converti binar în zecimal. De exemplu, numărul binar 101011 este echivalent cu numărul zecimal 43:

2 5 1+2 4 0+2 3 1+2 2 0+2 1 1+2 0 1=43

În dispozitivele digitale, termeni speciali sunt utilizați pentru a desemna unități de informații de diferite dimensiuni: bit, octet, kilobyte, megaoctet etc.

Pic sau Cifră binară determină valoarea oricărui caracter dintr-un număr binar. De exemplu, numărul binar 101 are trei biți sau trei cifre. Se numește cifra din extrema dreaptă, cu cea mai mică greutate Junior iar extrema stângă, cu cea mai mare greutate, - senior.

Un octet definește un 8 biți unitate de informație, 1 octet = 23 de biți, de exemplu, 10110011 sau 01010111 etc., 1 kbyte = 2 10 octeți, 1 MB = 2 10 kbytes = 2 20 octeți.

Pentru a reprezenta numere cu mai multe cifre în sistemul binar, este necesar un număr mare de cifre binare. Înregistrarea este mai ușoară dacă utilizați sistemul numeric hexazecimal.

fundație sistem hexazecimal calculul este numărul 16=2 4 , care folosește 16 elemente de desemnare: numere de la 0 la 9 și literele A, B, C, D, E, F. Pentru a converti un număr binar în hexazecimal, este suficient să împărțiți binarul număr în grupuri de patru biți: partea întreagă de la dreapta la stânga, fracțional - de la stânga la dreapta punctului zecimal. Grupurile extreme pot fi incomplete.

Fiecare grup binar este reprezentat de caracterul hexazecimal corespunzător (Tabelul 1). De exemplu, numărul binar 0101110000111001 în hexazecimal este exprimat ca 5C39.

Utilizatorul este cel mai confortabil cu sistemul numeric zecimal. Prin urmare, multe dispozitive digitale, care lucrează cu numere binare, primesc și emit numere zecimale utilizatorului. În acest caz, se utilizează zecimală codificată binar.

Cod zecimal binar se formează prin înlocuirea fiecărei cifre zecimale a unui număr cu o reprezentare binară de patru cifre a acestei cifre în cod binar (vezi Tabelul 1). De exemplu, numărul 15 este reprezentat ca 00010101 BCD (Binary Coded Decimal). În acest caz, fiecare octet conține două cifre zecimale. Rețineți că codul BCD din această conversie nu este un număr binar echivalent cu un număr zecimal.

1.2 Bazele logice ale calculatoarelor

Ramura logicii matematice care studiază relațiile dintre variabilele logice care au doar două valori se numește algebra logicii. Algebra logicii a fost dezvoltată de matematicianul englez J. Boole și este adesea numită algebră booleană. Algebra logicii este baza teoretică pentru construirea sistemelor digitale de procesare a informațiilor. În primul rând, pe baza legilor algebrei logicii, este dezvoltată o ecuație logică a dispozitivului, care vă permite să conectați elemente logice în așa fel încât circuitul să îndeplinească o anumită funcție logică.


Tabelul 1 - Codurile numerelor de la 0 la 15

Numar decimal Codurile
Binar hexazecimal zecimală binară
0 0000 0 000
1 0001 1 0001
2 0010 2 0010
3 0011 3 0011
4 0100 4 0100
5 0101 5 0101
6 0110 6 0110
7 0111 7 0111
8 1000 8 1000
9 1001 9 1001
10 1010 A 00010000
11 1011 B 00010001
12 1100 C 00010010
13 1101 D 00010011
14 1110 E 00010100
15 1111 F 00010101

1.2.1 Fundamentele algebrei logicii

Diverse variabile booleene pot fi legate prin dependențe funcționale. Dependențe funcționale dintre variabilele logice pot fi descrise prin formule logice sau tabele de adevăr.

În general, logic formulă funcțiile a două variabile se scrie astfel: y=f(X 1 , X 2), unde X 1 , X 2 - variabile de intrare.

ÎN tabelul de adevăr afișează toate combinațiile (combinațiile) posibile ale variabilelor de intrare și valorile corespunzătoare ale funcției y, rezultate din executarea oricărei operații logice. Cu o variabilă, setul complet este format din patru funcții, care sunt prezentate în Tabelul 2.


Tabelul 2 - Set complet de funcții ale unei variabile

X Y1 Y2 Y3 Y4
0 1 0 1 0
1 0 1 1 0

Y1 - Inversie, Y2 - Funcția de identitate, Y3 - Funcția absolut adevărată și Y4 - Funcția absolut falsă.

Inversiunea(negația) este una dintre principalele funcții logice utilizate în dispozitivele digitale de procesare a informațiilor.

Cu două variabile, setul complet este format din 16 funcții, dar nu toate sunt folosite în dispozitivele digitale.

Principalele funcții logice ale a două variabile utilizate în dispozitivele digitale de procesare a informațiilor sunt: ​​disjuncția (adunarea logică), conjuncția (înmulțirea logică), suma modulo 2 (disparitatea), săgeata lui Pierce și cursa lui Schaeffer. Simbolurile operațiilor logice care implementează funcțiile logice de mai sus pentru una și două variabile sunt date în Tabelul 3.


Tabelul 3 Numele și simbolurile operațiilor logice

Operația de inversare poate fi efectuată pur aritmetic: şi algebric: Din aceste expresii rezultă că inversarea X, adică completează X la 1. Prin urmare, a apărut un alt nume pentru această operație - plus. De aici putem concluziona și că dubla inversare duce la argumentul inițial, i.e. si se numeste legea dublei negaţii.


Tabelul 4 - Tabele de adevăr ale principalelor funcții ale două variabile

Disjuncție Conjuncție XOR Pierce Arrow Accident vascular cerebral Schaeffer
X1 X2 Y X1 X2 Y X1 X2 Y X1 X2 Y X1 X2 Y
0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
0 1 1 0 1 0 0 1 1 0 1 0 0 1 1
1 0 1 1 0 0 1 0 1 1 0 0 1 0 1
1 1 1 1 1 1 1 1 0 1 1 0 1 1 0

Disjuncție. Spre deosebire de suma obișnuită aritmetică sau algebrică, aici prezența a două unități are ca rezultat o unitate. Prin urmare, atunci când se desemnează însumarea logică, ar trebui să se acorde preferință semnului (∨) în locul semnului (+).

Primele două rânduri ale tabelului de adevăr al operației de disjuncție ( X 1 =0) determina legea adunării zero: x ∨ 0 = X, iar a doua două linii (x 1 = 1) - legea adunării unității: X ∨ 1 = 1.

Conjuncție. Tabelul 4 arată în mod convingător identitatea operațiilor de înmulțiri obișnuite și logice. Prin urmare, ca semn al înmulțirii logice, este posibil să se folosească semnul obișnuit al înmulțirii obișnuite sub forma unui punct.

Primele două rânduri ale tabelului de adevăr al operației de conjuncție definesc legea înmulțirii cu zero: X 0 = 0, iar al doilea doi - legea înmulțirii cu unu: x 1 = X.

Exclusiv sau. Funcția XOR este înțeleasă după cum urmează: o unitate la ieșire apare atunci când doar una este prezentă la o intrare. Dacă există două sau mai multe intrări sau dacă toate intrările sunt zero, atunci ieșirea va fi zero.

Inscripția de pe denumirea elementului EXCLUSIV SAU „=1” (Figura 1, d) înseamnă doar că situația este evidențiată atunci când există una și o singură unitate la intrări.

Această operație este similară cu operația de însumare aritmetică, dar, ca și alte operații logice, fără formarea unui carry. De aceea are un alt nume. suma modulo 2și notația ⊕, care este similară cu notația pentru însumarea aritmetică.

Pierce ArrowȘi Accident vascular cerebral Schaeffer. Aceste operații sunt inverse ale operațiilor de disjuncție și conjuncție și nu au notație specială.

Funcțiile logice considerate sunt simple sau elementare, deoarece valoarea adevărului lor nu depinde de adevărul oricărei alte funcții, ci depinde doar de variabile independente numite argumente.

Dispozitivele de calcul digitale folosesc funcții logice complexe care sunt dezvoltate din funcții elementare.

complex este o funcție logică a cărei valoare de adevăr depinde de valoarea de adevăr a altor funcții. Aceste funcții sunt argumente pentru această funcție complexă.

De exemplu, într-o funcție logică complexă argumentele sunt X 1 ∨X 2 şi .

1.2.2 Elemente logice

Elementele logice sunt utilizate pentru implementarea funcțiilor logice în dispozitivele digitale de procesare a informațiilor. Denumirile grafice condiționate (UGO) ale elementelor logice care implementează funcțiile discutate mai sus sunt prezentate în Figura 1.

Figura 1 - Elemente logice UGO: a) Invertor, b) SAU, c) ȘI, d) SAU exclusiv, e) SAU-NU, f) ȘI-NU.


Funcțiile logice complexe sunt implementate pe baza unor elemente logice simple, prin conectarea lor corespunzătoare pentru implementarea unei anumite funcții analitice. Diagrama funcțională a unui dispozitiv logic care implementează o funcție complexă, dat în paragraful anterior este prezentat în Figura 2.

Figura 2 - Un exemplu de implementare a unei funcții logice complexe


După cum se poate observa din Figura 2, ecuația logică arată care LE-uri și ce conexiuni pot fi utilizate pentru a crea un dispozitiv logic dat.

Deoarece ecuația logică și circuitul funcțional au o corespondență unu-la-unu, este recomandabil să simplificați funcția logică folosind legile algebrei logicii și, prin urmare, să reduceți numărul sau să schimbați nomenclatura LE în timpul implementării sale. .

1.2.3 Legile și identitățile algebrei logicii

Aparatul matematic al algebrei logicii vă permite să transformați o expresie logică, înlocuind-o cu una echivalentă pentru a simplifica, reduce numărul de elemente sau înlocuiți baza elementului.

1 Relocabil: X ∨ Y = Y ∨ X; X Y = Y X.

2 Combinativ: X ∨ Y ∨ Z = (X ∨ Y) ∨ Z = X ∨(Y ∨ Z); X Y Z = (X Y) Z = X (Y Z).

3 Idempotenzi: X ∨ X = X; X X = X.

4 Distributiv: (X ∨ Y) Z = X Z ∨ Y Z.

5 Dublă negație: .

6 Legea dualității (regula lui De Morgan):

O serie de identități sunt folosite pentru a transforma formulele structurale:

X ∨ X Y = X; X(X ∨ Y) = X - Reguli de absorbție.

X· Y ∨ X· = X, (X ∨ Y)·(X ∨ ) = X – Reguli de lipire.

Regulile de prioritate ale operațiilor logice.

1 Negația este acțiunea logică a primei etape.

2 Conjuncția este o acțiune logică a etapei a doua.

3 Disjuncția este o acțiune logică a etapei a treia.

Dacă într-o expresie logică apar acțiuni de diferite etape, atunci prima etapă este executată mai întâi, apoi a doua și numai după aceea a treia etapă. Orice abatere de la această ordine trebuie indicată prin paranteze.