date L№tavlenie în calculatoare
1 Informațiile și datele
Informația este percepută de către om și el o reacție particulară se poate face. Diferite persoane de aceleași mesaje pot elimina diferite cantități de informații. Un muzician profesionist, de exemplu, metoda de lucru notație muzicale muzicale pentru a obține mai multe informații despre performanțele sale decât programator, și programator în textul programului vă poate spune despre comportamentul ei mai mult decât un muzician.
Calculatoarele nu se ocupă cu informații și date. Primirea de date de intrare, acestea sunt „mecanic“, le prelucrează, conform unor algoritmi pentru a datelor de ieșire (rezultate) din care o persoană este de obicei mai ușor pentru a extrage informații decât datele originale. Primirea la intrare o expresie aritmetică „(13 + pagina 27) • 2“, calculatorul emite expresia echivalentă „80“, valoarea (sensul) este o persoană să perceapă mai ușor (nu este nevoie pentru a face în mintea ta sau pe aritmetică hârtie).
2 Prezentarea datelor într-un calculator
De obicei, datele de intrare și de ieșire este prezentată într-o formă adecvată pentru ființele umane. Numărul de persoane sunt folosite pentru a reprezenta în sistemul zecimal. Pentru computerul mai convenabil la sistemul binar. Acest lucru se datorează faptului că este mult mai ușor punct de vedere tehnic pentru punerea în aplicare a dispozitivului (de exemplu, elementul de stocare), cu două și nu cu zece stabil (are un curent electric - nici un curent magnetizate - nu magnetizat, și altele asemenea). Putem presupune că una dintre cele două state este o unitate diferită - zero.
Orice date (numere, simboluri grafice și imagini sonore) sunt reprezentate în computer ca o secvență de zero-uri și cele. Aceste secvențe pot fi considerate cuvinte în alfabet, astfel încât prelucrarea datelor în calculator, poate fi considerată ca fiind convertirea cuvintelor de zero-uri și cele în conformitate cu normele înregistrate în chips-uri procesor. O astfel de viziune unește calculatoare cu calculatoare abstracte. Gândiți-vă mașină Turing sau Markov algoritmi normali.
element al unei secvențe de zero-uri și altele (un membru al unei astfel de secvențe) se numește un pic. Nominativ - biți.
Afișarea informațiilor externe într-o reprezentare internă se numește codificare. Codul (franceză codul de mai jos, din codexul Latină - .. Corpul de lege) sa numit pe sine un mod de a afișa și un set de cuvinte (codewords) utilizate pentru codificare.
3 Reprezentarea numerelor întregi
Pentru reprezentarea numerelor în calculator este utilizat, în general, seturi de biți - secvența de unu și zerouri de lungime fixă. Lungimea Organizarea seturi de prelucrare fixe este punct de vedere tehnic mai ușor decât un set de lungime variabilă. Poziția în setul de biți numit de descărcare. Calculatorul este numit, de asemenea, o porțiune de descărcare a (sau celula de memorie) registru de stocare un bit.
3.1 numere întregi fără semn
Cum de a determina care reprezintă întreg stabilit un anumit pic? Există mai multe moduri diferite. De exemplu, putem presupune că numărul este reprezentat de numărul de unități din setul de biți ( „unitate“ sistem numeric). Această metodă permite introducerea numai k diferite numere întregi de la 0 la k -1, unde k - lungime set. Este evident că această metodă este o risipă - același număr poate corespunde mai multe seturi diferite. Numărul de posibile șiruri de biți de lungime k este 2 k. Prin urmare, este avantajos să se atribuie diferite seturi de un număr diferit. Acest lucru va permite să introducă 2 k numere diferite. luând în considerare, în general, intervalul de numere întregi [N. N +2 k). Când N = 0 au o reprezentare a numerelor întregi fără semn (non-negative) la 0 la 2 k -1.
Există doar (2 k). (Numărul de permutări de elemente 2 k) modalități de a codifica seturi de numere de biți fără semn. Dintre toate acestea, teoretic
Reprezentarea numerelor este cel mai convenabil, după cum urmează: set de biți,
Gama de numere reprezentabile: - 2 K-1. -1
Rețineți că zero are două reprezentări în direcția înainte și codul invers, iar în reprezentarea suplimentară de cod de zero numai.
3.2.3 Computation codurilor inverse și suplimentare
Același set de biți de lungime k poate fi interpretată în moduri diferite: 1) ca o reprezentare a unui număr de nesemnate; 2) reprezentarea unui număr cu semn (înainte, înapoi sau completează). Calculatorul nu știe că este unul sau celălalt set de biți - este doar un cuvânt pentru ea în
alfabetul, și semnificația cuvântului este cunoscut pentru programator. Valoarea numerică a cuvântului va fi numit un număr întreg non-negativ, al cărui binar (k-bit) înregistrarea coincide cu cuvântul.
Fie x - număr cu un semn. Apoi, valoarea numerică și codurile sale inverse suplimentare pot fi definite cu ajutorul funcțiilor mod (x) și suplimentar (x):
3.3 Operațiile aritmetice pe numere întregi
Revers și codurile suplimentare sunt utilizate în special pe scară largă, pentru a simplifica construcția o unitate logică aritmetică (ALU) a unui calculator prin înlocuirea adaugatoare aritmetice.
fracțiile zecimale în mod obișnuit atunci când intră în aparat este convertit automat într-un cod binar (numere întregi fără semn), invers sau identificarea complementară (numere întregi semnate) și stocate în această formă, muta și sunt implicate în operațiuni. În producția mașinii merge conversia opusă zecimal numere.
3.3.1 Adăugarea și Scadere
3.3.1.1 Adăugați și Subtract nesemnate
Adunare și scădere a numerelor fără semn are loc pe algoritmi uzuale de sistem numărul de poziție. Exemple (pentru k = 3):
001 2 +100 2 = 101 2;
101 2-010 2 = 011 2.
O situație în care descăzut este mai mică decât Scăzător, sau în cazul în care valoarea rezultatului nu se încadrează în k biți, sunt considerate a fi eronate și ar trebui să fie monitorizată de un dispozitiv de calculator. Reacția la astfel de erori pot fi diferite pentru diferite tipuri de calculatoare.
3.3.1.2 Adăugarea și scăderea numerelor cu codul semn invers
Adăugarea în codul inversă este după cum urmează: algoritmul regulate a adăugat toți biții, inclusiv semnul. Rezultatul acestei adăugări de seturi k -bit are o lungime k + 1 (bitul cel mai din stânga rezultatului este una, dacă a existat o schimbare în adăugarea de biți semnificativi operanzilor sau - zero). Semnificația pe stânga k + 1-lea bit este adăugat la LSB rezultat. Obținem k set de biți, care va fi suma celor două numere în cod invers.
+10 + nu sta în loc (- 1 10) = 011 2 + 110 2 = 1 001 2 001 B 2 +1 = 010 2 = +2 10.
Numerele de cod în scădere inversă x - y este redus la adăugarea x + (-y).
3.3.1.3 Adăugarea și scăderea numerelor semnate în complement față de doi
În plus, un cod suplimentar este după cum urmează: algoritmul regulate adaugă toți biții, inclusiv semnul; o unitate de transfer k + 1-lea bit este îndepărtată (adică modulo 2 k).
+10 + nu sta în loc (- 1 10) = 011 2 + 111 2 = 1 010 2 010 2 B 2 = 10.
Atunci când scăderea algoritmul de obicei, de asemenea, funcționează și în cazul în care mai puțin de Descăzut Scăzător, un cod binar atribuit unitatea din stânga redusă
(De exemplu, se adaugă 2 k) și numai după ce se scade (această metodă se numește scădere modulo 2 k).
1 10 10 -3 = 001 2-011 2 B 1001 2 - 2 = 110 011 2 = 10 -2.
Dacă x și y - codul numeric de valori adiționale semnate numere, valorile numerice ale codurilor sumă și diferență suplimentară determinată de următoarele formule:
x + y. dacă x + y <2 k. ( x + y ) mod 2 k =
x + y - 2 k. dacă x + y ≥ k 2
x - y. dacă x ≥ y. (X - y) mod 2 k =
(2 k + x) - y. dacă x 3.3.2 Înmulțirea și împărțirea În multe calculatoare, multiplicarea este realizată ca o serie de completări și schimburi. În acest scop, ALU are un registru numit acumulator, care înaintea operației cuprinde numărul zero. În timpul funcționării sunt aranjate alternativ deînmulțitul și rezultatele intermediare ale adăugări, și după încheierea operațiunii - rezultatul final. Un alt ALU registru implicat în această operațiune, cuprinde un prim factor de multiplicare. Apoi, ca executarea adaosurilor conținute în acesta număr scade până când ajunge la zero. Divizarea unui calculator este o operație dificilă. De obicei, aceasta se realizează prin adăugarea de mai multe ori un cod suplimentar divizibil împărțitor. 3.3.3 Erori atunci când efectuează operații aritmetice Atunci când se efectuează operații aritmetice pot fi situații în care cei mai semnificativi biți ai rezultatul operației nu se încadrează în zona de memorie rezervată pentru ea. Următoarele sunt exemple de calcul de eroare (k = 3). Adăugarea semnat numere în cod invers: 10 + -3 (-2 10) = 100 + 2 101 2 = 1 001 2 B 2 +1 = 001 010 2 = +2 10 Scădeți numere de cod semn în sens invers: +2 10 - (10 -3) = 010 2 - 101 2 B 1 010 2 -101 2 = 101 2 = 10 -3. Această situație se numește overflow digitală de format numărul (mantisa). Pentru a detecta depășire și despre eroarea de alertă echipamentele speciale utilizate în calculator. Reacția la erori diferite pot fi diferite. Astfel, o indicație este situat într-o așa-numitele steaguri overflow înregistreze și executarea continuă într-un anumit calculator la împărțirea cu zero, calculând terminată (Eroare fatală), iar revărsarea mantisei.
4 Reprezentarea numerelor reale
Numerele reale (spre deosebire de numere întregi) în tehnologia de calculator numit număr având o parte fracționată. Cu imaginea lor în mai multe limbaje de programare este acceptată în loc de virgulă pentru a termina. De exemplu, numărul de 5 - întreg și de 5,1 și 5,0 - materiale. Pentru comoditatea de afișarea numerelor, luând valori dintr-o gamă destul de largă (adică, ambele foarte mici și foarte mari), forma numerelor la radix ordine. De exemplu, numărul zecimal 1.75 poate fi sub această formă, reprezentată după cum urmează:
1,75 • 10 0 = 0,175 • 10 ianuarie = 0,0175 • = 10 februarie.
17.5 • 10 -1 = 175.0 • 10 -2 = 1750.0 • 10 = -3.
Orice număr N într-o q radix poate fi scris ca N = M • q p. unde M este mantisa și p - ordine. O astfel de metodă de înregistrare numit numere de reprezentare în virgulă mobilă. Dacă punctul „plutitor“ este situat în mantisa înainte de prima cifră semnificativă, apoi un număr fix de biți alocate pentru mantisei, oferă o evidență a numărului maxim de cifre semnificative ale numărului care este precizia maximă a numărului mașinii. Din aceasta rezultă că mantisei trebuie să fie fracțiunea corectă, prima cifră care este diferită de zero: M [0,1, 1). Este cea mai avantajoasă pentru reprezentarea pe calculator a numerelor reale se numește normalizat. Mantisă și numărul de ordine -ary q este scris de obicei în sistem cu q bază. și însăși baza - în sistem zecimal.
4.1 Exemple de reprezentare normalizate:
752.15 = 0.75215 • 10 martie; = -101.01-0.10101 • 11 februarie (a 11 Procedura 2 = 3 10)
- 0.000039 = - 0,39 • 10 -4; - 0.000011 2 = 0,11 • -100 (-100 ordine 2 = - 4 10)
Numere reale în calculatoare de diferite tipuri sunt înregistrate în diferite moduri. În acest caz, un programator de calculator, de obicei, oferă posibilitatea de a alege mai multe formate numerice cele mai potrivite pentru o anumită sarcină - folosind patru, șase, opt sau zece biți.
Ca un exemplu, caracteristicile formatelor de numere reale utilizate de computere personale compatibile IBM:
4.3 Operațiile aritmetice cu numere normalizate
La începutul executării operații aritmetice pași operanzi sunt plasate în registrele corespunzătoare ALU.
Prin adăugarea și scăderea de operare pregătitoare numite ordine de aliniere efectuate mai întâi. In timpul ordinea de aliniere a mantisei este deplasată la un ordin inferior într-un registru la dreapta prin numărul de biți egal cu diferența dintre ordinele operanzilor. După fiecare procedură de schimbare incrementat.
Ca rezultat, un număr de ordine de egalizare nivel de același nume sunt aranjate în biții respectivi ai ambelor registre, apoi se adaugă sau se scade mantise.
Dacă este necesar, acest rezultat este normalizată prin deplasarea spre stânga a rezultatului mantisă. După ce a părăsit-deplasarea fiecare comandă rezultat decrementat.
Exemplul 1. Fold număr binar normalizat -1 2 • 0.10111 0.11011 • 2 și 10. Diferența în ceea ce privește ordinele este de trei aici, astfel încât înainte de adăugarea mantisei este mutat la primele trei cifre la dreapta:
Exemplul 2. Se efectuează scăderea binară numere normalizate 2 • 0.10101 0.11101 • 10 și 2: 1. Diferența dintre Descăzut și Scăzător ordinele sunt egale cu unitatea, astfel încât mantisa înainte de scăderea al doilea număr este deplasat de către un bit spre dreapta:
Rezultatul nu a fost normalizat, astfel încât mantisa sa este deplasat la stânga cu doi biți cu o reducere corespunzătoare în ordinea a două unități: 0.1101 • 2 0.
Multiplicarea a două numere normalizate, se adaugă ordinele lor și înmulțit mantisa.
Exemplul 3. Se efectuează numere normalizate de multiplicare binar:
(0.11101 • 2101) • (0.1001 • 11 2) = (0.11101 • 0.1001) • 2 (101 + 11) = 0.100000101 • Februarie 1000
Când împărțirea celor două numere normalizate scade ulterior din comanda dividendului comanda subgrupă, iar mantisa dividendului este împărțit într-un separator mantisă. Apoi, dacă este necesar, rezultatul este normalizat.
Exemplul 4. Efectuați numere normalizate de fisiune binar:
0.1111 • 2 100. 0.101 • 11 februarie = (0.1111. 0.101) • 2 (100-11) = 1,1 • 2 = gerar 0,11 • 10 februarie
Folosind reprezentarea numerelor în virgulă mobilă complică în mod semnificativ circuitul ALU.