Reprezentarea numerelor pe computer. Întrebări și sarcini

Acasă / Sisteme de operare

Prezentarea informațiilor pe computer.

1. Reprezentare întreg

2. Reprezentarea numerelor reale

3. Prezentare informații text

4. Prezentarea informațiilor grafice și video

5. Prezentarea informațiilor audio

6. Metode de compresie a informațiilor digitale

De la sfârșitul secolului al XX-lea, secolul computerizării, omenirea folosește zilnic sistemul de numere binare, deoarece toate informațiile procesate de computerele moderne sunt prezentate în formă binară.

Fiecare registru al dispozitivului aritmetic al unui calculator, fiecare celulă de memorie este un sistem fizic format dintr-un anumit număr de elemente omogene care au două stări stabile, dintre care una corespunde cu zero, iar cealaltă cu una. Fiecare astfel de element este folosit pentru a înregistra unul dintre biții unui număr binar. De aceea fiecare element al celulei se numește cifră.

(k-1)-a cifră ……… categoria 1 a 0-a cifră

Fig.1 Celula de k-cifre.

Tehnologia calculatoarelor a apărut ca mijloc de automatizare a calculelor, motiv pentru care primele calculatoare au fost numite calculatoare – calculatoare electronice. Astăzi, computerele procesează diverse tipuri de informații: numerice, text, sonore, grafice. Cu toate acestea calculator modern poate doar stoca și procesa informatii discrete. Prin urmare, orice tip de informație care este supusă prelucrării computerului trebuie să fie codificată într-un fel sau altul folosind o secvență finită de numere întregi, care este apoi convertită în formă binară pentru stocare în computer.

În această prelegere ne vom uita la modul în care se rezolvă problema conversiei informațiilor sursă într-o reprezentare computerizată pentru fiecare tip de informație. Se va arăta cât de exact reprezentarea computerului reflectă informațiile originale, iar cuvântul „cu acuratețe” aici se aplică nu numai numerelor (precizia reprezentării), ci și altor tipuri de informații. Și anume, se ia în considerare gradul de realism în transmiterea nuanțelor de culoare pe monitor, gradul de apropiere a muzicii reproduse de sunetul natural al instrumentelor muzicale sau al vocii umane etc informația computerului se numește sarcină prelevarea de probe sau cuantizarea. Această problemă trebuie rezolvată pentru toate tipurile de informații. Metodele de eșantionare pentru diferite tipuri de informații sunt diferite, dar abordările pentru rezolvarea acestei probleme se bazează pe aceleași principii.



Reprezentarea numerelor întregi.

Orice număr întreg poate fi considerat un număr real, dar cu o parte fracțională zero, adică ne-am putea limita la reprezentarea numerelor reale într-un computer și la implementarea unor operații aritmetice asupra acestora. Cu toate acestea, pentru a utiliza eficient memoria, a crește viteza calculelor și a introduce operația de împărțire a unui număr întreg cu un rest, numerele întregi sunt reprezentate în moduri special concepute.

Introducerea unor metode speciale de reprezentare a numerelor întregi este justificată de faptul că destul de des în problemele rezolvate cu ajutorul calculatorului, multe operații sunt reduse la operații pe numere întregi. De exemplu, în problemele de natură economică, datele sunt numărul de acțiuni, angajați, piese, vehicule etc., care în sensul lor sunt numere întregi. Numerele întregi sunt folosite atât pentru a indica data și ora, cât și pentru a numerota diverse obiecte: elemente de matrice, înregistrări în baze de date, adrese de mașini etc.

Pentru reprezentarea computerizată a numerelor întregi, se folosesc de obicei mai multe metode de reprezentare diferite, care diferă unele de altele prin numărul de cifre și prezența sau absența unei cifre de semn. Reprezentarea fără semn poate fi folosită numai pentru numerele întregi nenegative;

Cu reprezentarea fără semn, toți biții celulei sunt alocați numărului însuși. Când este reprezentată cu un semn, cea mai semnificativă cifră (stânga) este alocată semnului numărului, cifrele rămase sunt alocate numărului însuși. Dacă numărul este pozitiv, atunci 0 este plasat în bitul cu semn dacă numărul este negativ, atunci este plasat 1. Evident, în celule de aceeași dimensiune, un interval mai mare de numere întregi nenegative poate fi reprezentat în reprezentare fără semn. numere semnate. De exemplu, într-un octet (8 biți) puteți scrie numere pozitive de la 0 la 255 și cu un semn - doar până la 127. Prin urmare, dacă știți dinainte că o anumită valoare numerică este întotdeauna nenegativă, atunci este mai profitabil să o considerăm nesemnată.

Ei spun că numerele întregi dintr-un computer sunt stocate în formatul c punct fix(o altă interpretare - punct fix).

Reprezentarea numerelor întregi pozitive.

Pentru a obține o reprezentare computerizată a unui întreg fără semn într-o celulă de memorie de k biți, este suficient să îl convertiți în sistemul de numere binar și să completați rezultatul rezultat din stânga cu zerouri până la k cifre. Este clar că există o limită a numerelor pe care le putem scrie într-o celulă de k-biți.

Numărul maxim reprezentabil corespunde celor din toate cifrele celulei (un număr binar format din k). Pentru o reprezentare pe k-biți, acesta va fi egal cu 2 k - 1. Numărul minim este reprezentat de zerouri în toate cifrele celulei, este întotdeauna egal cu zero; Mai jos sunt numerele maxime pentru reprezentarea fără semn pentru diferite valori ale lui k:

Cu reprezentarea semnată a numerelor întregi, concepte precum înainte, înapoi și coduri suplimentare .

Definiție 1. Reprezentarea unui număr într-o formă familiară oamenilor” semn-magnitudine „, în care cea mai semnificativă cifră a celulei este alocată semnului, restul k - 1 cifre - sub cifrele numărului, numit cod direct.

De exemplu, coduri directe ale numerelor binare 11001 2 Şi -11001 2 pentru o celulă de opt biți sunt egale 00011001 Şi 10011001 respectiv. Numerele întregi pozitive sunt reprezentate în computer folosind cod direct. Codul direct al unui număr întreg negativ diferă de codul direct al numărului pozitiv corespunzător din conținutul bitului de semn. Dar, în loc de cod direct, computerele folosesc codul complementar a doi pentru a reprezenta numerele întregi negative.

Rețineți că numărul maxim pozitiv care poate fi scris în notație cu semn în k cifre este 2 k-1 - 1 , care este de aproape două ori mai mic decât numărul maxim din reprezentarea fără semn în aceiași k biți.

Întrebarea 1. Este posibil să reprezentați numărul 200 cu un semn într-o celulă de 8 biți?

Întrebări.

  1. Justificați fezabilitatea reprezentării numerelor întregi într-un mod special pe un computer.
  2. Dați un exemplu de înmulțire a două numere pozitive într-un număr limitat de cifre, rezultând un număr negativ.
  3. Enumerați și explicați toate erorile care pot apărea la efectuarea operațiilor aritmetice pe numere întregi din aritmetica computerizată într-un număr limitat de cifre.
  4. Arată cum folosirea codului de complement a doi vă permite să înlocuiți operația de scădere cu o operație de adunare.
  5. Într-o celulă de opt cifre, notați codurile suplimentare ale următoarelor numere binare: a) -1010; b) -1001; c) -11; d) -11011.
  6. Este posibil să spunem după forma complementului unui număr dacă este par sau impar?
  7. Aflați echivalentele zecimale ale numerelor negative scrise în complement a doi: a) 11000100; b) 11111001.
  8. Care dintre numerele 43 16, 101010 2, 129 10 și -135 10 pot fi stocate într-un octet (8 biți)?
  9. Obțineți o reprezentare pe 16 biți a următoarelor numere: a) 25; b) -610.
  10. Pentru numerele A = 1110 2, B = 1101 2, efectuați următoarele operații: A + B; A - B; B - A; -A - A; -B - B; -A - B (în reprezentare semnată pe opt biți).

Întrebări.

1. Scrieți următoarele numere zecimale în formă normalizată:

a) 217,934; c) 10,0101; b) 75321; d) 0,00200450.

2. Reduceți următoarele numere la forma normalizată, folosind bazele sistemelor lor numerice ca P:

a) -0,000001011101 2;

b) 98765432У 10;

c) 123456789,ABCD 16.

3. Comparați următoarele numere:

a) 318,4785 × 10 9 și 3,184785 × 10 11;

b) 218,4785 × 10 -3 și 21847,85 × 10 -4 ;

c) 0,1101 2 × 2 2 și 101 2 × 2 -2.

4. Comparați intervalul de reprezentare a numerelor în virgulă mobilă în format de 32 de biți (24 de biți pentru mantise și 6 biți pentru modul) cu domeniul de reprezentare a numerelor în virgulă fixă ​​în același format.

5. Care sunt avantajele reprezentării pe computer a numerelor în virgulă mobilă față de reprezentarea în virgulă fixă ​​pe care o folosim cel mai adesea în viata de zi cu zi?

6. Efectuați următoarele operații aritmetice pe numere zecimale normalizate conform regulilor aritmeticii computerizate reale (în mantisă trebuie să fie stocate 6 cifre semnificative):

a) 0,397621 x 10 3 + 0,237900 x 10 1;

b) 0,982563 x 10 2 - 0,745623 x 10 2;

c) 0,235001 x 10 2 0,850000 x 10 3;

d) 0,117800 x 10 2: 0,235600 x 10 3.

Când efectuați această sarcină, ar trebui să normalizați mantisa rezultatului operației aritmetice corespunzătoare și apoi să o rotunjiți

7. Efectuați operația pe coduri de mașină a numerelor în virgulă mobilă în format de 32 de biți: X = A + B, unde A = 125,75 și B = -50.

8. Enumerați și explicați toate erorile care pot apărea în timpul operațiilor aritmetice cu numere normalizate într-un număr limitat de cifre.

Cuantificarea culorilor.

După cum sa menționat mai sus, informațiile grafice de origine naturală, atunci când sunt introduse într-un computer, trebuie supuse operațiunilor de eșantionare spațială și de cuantificare a culorilor.

Cuantizarea (codificarea) culorii se bazează pe o descriere matematică a culorii, care, la rândul său, se bazează pe faptul că culorile pot fi măsurate și comparate. Se numește disciplina științifică care studiază măsurarea caracteristicilor culorii metrologia culorilor, sau colorimetrie. O persoană are o percepție a culorii foarte complexă; este suficient să rețineți că centrii vizuali ai creierului la copiii nou-născuți petrec câteva luni (!) doar antrenându-se pentru a vedea. Prin urmare, descrierea matematică a culorii este, de asemenea, foarte netrivială.

Oamenii de știință pentru o lungă perioadă de timp nu a fost posibil să se explice procesul de percepere a culorii. Până la mijlocul secolului al XVII-lea a predominat teoria speculativă a lui Aristotel, conform căreia toate culorile se formează prin amestecarea negrului cu alb. Primele rezultate serioase în acest domeniu au fost obținute de Isaac Newton, care a descris natura compozită a luminii albe și a stabilit că culorile spectrale sunt indecompuse și că prin amestecarea culorilor spectrale se poate sintetiza culoarea albă și tot felul de nuanțe ale altor culori. Newton a identificat cele șapte culori spectrale cele mai vizibile din spectrul luminii albe și le-a numit primare - roșu, portocaliu, galben, verde, albastru, indigo și violet. Aproximativ o jumătate de secol mai târziu, în 1756, remarcabilul om de știință rus M.V Lomonosov a formulat așa-numita teorie a culorii cu trei componente, rezumând enormul material empiric pe care îl acumulase în timp ce dezvolta tehnologia de producere a sticlei colorate și a mozaicurilor. În timp ce cerceta problemele colorării sticlei, Lomonosov a descoperit că pentru a da paharului oricărui M.V Lomonosov (1711-1765) o nuanță de culoare, este suficient să folosești doar trei vopsele de bază, amestecându-le în anumite proporții. Aproximativ un secol mai târziu, remarcabilul om de știință german Hermann Grassmann (1809-1877) a introdus un aparat matematic sub forma legilor lui Grassmann pentru sinteza aditivă a culorilor în teoria culorilor cu trei componente. Cele mai importante dintre acestea sunt următoarele două legi.

Legea tridimensionalității: folosind trei culori liniar independente, orice culoare poate fi exprimată în mod unic. Culorile sunt considerate liniar independente dacă niciuna dintre ele nu poate fi obținută prin amestecarea celorlalte.

Legea continuității: atunci când compoziția unui amestec de culori se modifică continuu, culoarea rezultată se schimbă și ea continuu. Puteți alege o culoare infinit apropiată de orice culoare.

Teoria culorii cu trei componente a devenit baza colorimetriei, dar fundamentarea acestei teorii a apărut abia la începutul secolelor XIX-XX, după ce s-a studiat fiziologia organelor vizuale.

Legile colorimetrice ale lui Grassmann stabilesc proprietăți generale modele matematice culorile. De fapt, legile lui Grassmann postulează că orice culoare poate fi asociată fără ambiguitate cu un anumit punct din spațiul tridimensional. Punctele din spațiu care corespund culorilor percepute de ochiul uman formează un anumit corp convex în spațiu. Negrul absolut corespunde întotdeauna punctului (0, 0, 0). Astfel, culorile pot fi gândite ca puncte sau vectori într-un spațiu de culoare tridimensional. Fiecare model de culoare definește un anumit sistem de coordonate în el, în care culorile primare ale modelului joacă rolul vectorilor de bază. Și cuantizarea culorilor este în esență o discretizare a spațiului de culoare.

ÎN tehnologie informatică Cele mai frecvent utilizate modele de culoare sunt:

  • RGB (roșu-verde-albastru, roșu-verde-albastru).
  • CMYK (cyan-magenta-galben-negru, cian-magenta-galben-negru).
  • HSB (Nuanță-Saturație-Luminozitate, nuanță-saturație-luminozitate).

Pentru a elimina ambiguitatea în interpretarea termenilor „luminozitate”, „saturație”, „nuanță de culoare”, să le explicăm.

Luminozitate este o caracteristică a culorii, a cărei definiție coincide practic cu conceptul de zi cu zi de luminozitate și conceptul fizic de iluminare sau luminozitate. Culorile roșu aprins, roșu și roșu închis diferă exact în luminozitate. Din punct de vedere fizic, luminozitatea este o măsură cantitativă a fluxului de energie luminoasă emisă sau reflectată de un obiect către observator. Deci, în lumina puternică a soarelui și la amurg, același model de culoare arată diferit. În acest caz, nuanțele de culoare nu se schimbă, doar luminozitatea culorilor este diferită.

Nuanta de culoare și saturația sunt alte două caracteristici independente ale culorii. Să avem un set de vopsele de diferite culori. Amestecând diferite vopsele între ele vom obține culori noi. De exemplu, un amestec de cantități egale de vopsele galbene și albastre va produce vopsea verde. Nuanța sau nuanța obiectului în cauză este legată de compoziția spectrală a radiației. După tonul de culoare al unui obiect, putem judeca culoarea obiectului - albastru, verde, roșu etc. Anumite părți ale spectrului vizibil provoacă senzația de culori diferite.

Saturaţie caracterizează gradul de „diluție” a unui ton de culoare cu alb. De exemplu, dacă vopseaua roșu aprins (saturată) este diluată cu alb, atunci nuanța sa de culoare va rămâne aceeași, doar saturația se va schimba. Exact în același mod, maro, galben și lămâie au aceeași nuanță de culoare - galben, diferența lor constă în saturația nuanței de culoare. Lumina dintr-o sursă monocromă are cea mai mare saturație.

Rețineți că pentru culorile alb și negru saturația este 0%, adică aceste culori nu au saturație. De aceea, amestecându-le cu vopsea colorată, îi schimbăm saturația, nu nuanța.

Model de culoare RGB.

În modelul RGB, culorile primare sunt roșu, verdeŞi albastru. Acest model utilizat în principal la afișare imagini grafice pe ecranul unui monitor, televizor, telefon mobil etc. Prin amestecarea celor trei culori primare, toate celelalte culori sunt sintetizate, luminozitatea lor condiționată (intensitatea) este specificată prin numere reale de la 0 la 1 (valoarea 1 corespunde luminozității maxime a culorii corespunzătoare pe care o poate descrie un dispozitiv grafic) . Modelul RGB definește un spațiu de culoare sub forma unui cub unitar cu axe „luminozitate componentă roșie”, „luminozitate componentă verde” și „luminozitate componentă albastră”.


Caracteristici caracteristice modelului RGB

Orice punct al cubului ( r, g, b ) definește o anumită culoare.

Punctul (0, 0, 0) corespunde negru, punctul (1, 1, 1) alb, iar linia (0, 0, 0) - (1, 1, 1) descrie toate nuanțele de gri: de la negru spre alb.

Când vă deplasați în linie dreaptă de la (0, 0, 0) prin punctul ( r, g, b) obținem toate gradațiile de luminozitate a culorii ( r, g, b), de la cel mai întunecat la cel mai luminos. De exemplu, (1/4, 1/4, 0) - maro închis, (1/2, 1/2, 0) - maro, (3/4, 3/4, 0) - galben-maro, ( 1 , 1, 0) - galben.

Pe fețele cubului ( r = 0}, {g = 0) și ( b = 0) sunt situate cele mai saturate culori.

Cu cât un punct este mai aproape de diagonala principală (0, 0, 0)-(1, 1, 1), cu atât culoarea corespunzătoare este mai puțin saturată.

Modelul de culoare RGB are o bază fiziologică. Ochiul uman conține patru tipuri de receptori vizuali: bastonașe (receptori de intensitate) și

trei tipuri de „conuri” (receptori de culoare). Fiecare tip de con este sensibil la lumină în propria sa gamă restrânsă de lungimi de undă, pentru conuri diferite tipuri Maximele de sensibilitate apar la diferite lungimi de undă, intervalele de sensibilitate se suprapun parțial:

Datorită sensibilității spectrale inegale și a intervalelor de sensibilitate suprapuse, ochiul uman este capabil să distingă un număr mare de culori (aproximativ 10 milioane).

Dacă trimiteți în ochi un semnal luminos compozit cu un raport corect selectat de luminozitate a culorilor roșu, verde și albastru, atunci centrii vizuali ai creierului nu vor putea distinge înlocuirea și vor concluziona că culoarea dorită este observată. ! Acest mecanism de sintetizare a nuanțelor de culoare este utilizat în toate tipurile moderne de monitoare color, televizoare și afișaje pentru telefoane mobile.

Pentru a utiliza modelul RGB matematic pentru reprezentarea reală pe computer a informațiilor grafice, este necesar să se cuantifice spațiul de culoare, adică să se găsească o modalitate de a reprezenta valorile reale ale luminozității componentelor de culoare în formă discretă.

Cel mai simplu mod de a realiza acest lucru este de a converti numere reale din intervalul = 100 – 43 = 57 C = 95 + [-B dk ] – 100 = – 100 = 152 – 100 = 52 Unitatea din cifra cea mai semnificativă a sumei poate fi taiat pur și simplu. Este necesar să găsim o modalitate de a obține adăugarea unui număr arbitrar X la q n fără a folosi scăderea: C = A – B = A + (-B) = A + (-B) + q n – q n = A +(q n -1- B)- q n + 1 Expresia q n – 1 – B determină numărul B obţinut prin înlocuirea fiecărei cifre a numărului B cu adunarea ei la numărul q –1. Deci, = = 999. Codul invers al lui B se numește codul invers al numărului B; q n -1 - constanta de formare a codului invers


Din codul invers este ușor să obțineți un cod suplimentar: B + B = q n -1 q n - B = B + 1 Cod suplimentar al codului invers Codul suplimentar se obține prin adăugarea unei cifre la cea mai puțin semnificativă cifră a codului invers . Prin urmare, complementele numerelor binare pot fi găsite fără operația de scădere. În codul invers, ca și în codul înainte, există un zero negativ și unul pozitiv. Numai în codul de complement a doi zero are o singură reprezentare. Pentru o lungime dată a grilei de biți, codul complementar reprezintă un număr mai mult negativ decât unul pozitiv. Să fim de acord să notăm codurile directe, inverse și suplimentare ale numărului A cu [A pk], [A ok], [A dk].


Exemplu. Găsiți codurile directe, inverse și suplimentare ale numerelor A = 34 și B = [A pk ]= , [A ok ]= , [A dk ]= [V pk ]= , [V ok ]= , [V dk ] = Algoritm pentru obținerea codului suplimentar al unui număr negativ. 1. Prezentați modulul unui număr în cod direct în k cifre binare. 2. Inversați valorile tuturor biților: înlocuiți toate zerourile cu unu și cele cu zerouri (obținând astfel un cod invers de k-biți al numărului original); 3.Adăugați unul la codul invers rezultat, interpretat ca un număr binar nenegativ de k biți.


Exemple. 1. Dat un număr întreg negativ număr zecimal M=-20. Reprezentați un număr în codul mașinii într-o grilă de 16 biți în sisteme de numere binar și hexazecimal. M = -20 = 2 = 2 = 2 = 16 = FFEC


2. Un număr întreg este dat sub formă de cod mașină binar hexazecimal. Determinați valoarea zecimală a acestui număr: K a =FFD4 Prima cifră este F, prin urmare numărul este negativ și este stocat în computer sub forma unui cod suplimentar de mașină. FFD4 16 = [ dk ] [ ok ] – cod invers al numărului PC = [ pk ] – cod binar direct al numărului Apoi numărul zecimal a = = - (32+8+4) = -44 – număr zecimal


Metoda 2: prin sistemul numeric hexazecimal K a =FFD4


Acțiuni asupra codurilor de mașină ale numerelor întregi Date: numere zecimale A = 34 și B = 30 Găsiți: A+B, A – B, B – A în coduri mașini binare într-o grilă de 8 biți.


= [A ok ] = [A dk ] = [-A pk ] = [-A ok ] = [-A dk ] = [-B pk ] = [-B ok ] = [-V dk ] = [V pk ] = [V ok ] = [V dk ] =


[A + B] DK = = A + B = 64 [A – B] DK = = A – B = 4 [B – A] DK = =




Acțiuni asupra codurilor de mașină ale numerelor în virgulă fixă ​​(în sistem numeric hexazecimal) Date: numere zecimale A = 34 și B = 30 Găsiți: A+B, A – B, B – A în coduri de mașină hexazecimale într-o grilă de 16 biți . 1) A=34=22 16 V=30=1E 16 pk = PC =001E 16 K A + K B = E = A + B = 64 2) PK =801E 16 DK = E 16 = FFE2 16 K A + K B = FFE2 = A - B = = 4


Exemple Numerele reale pot fi reprezentate ca coduri de mașină ale numerelor în virgulă mobilă într-o grilă de 32 de biți în 16s/s: a) A=32008.5b) B= .5 c) C= ​​​​15d) D= Să găsim mantisele normalizate și caracteristicile acestor numere: a ) А=32008.5=7D08.8 16 =0.7D m A =0.7D088p xA =4+40=44 16 = Semn- 0 Caracteristică Parte fracționară a mantisei Mantisa normalizată Caracteristica K A = = = 43FA > 0 0">


B) B= .5= -7D08.8 16 = - 0.7D m B = -0.7D088p xB =4+40=44 16 = Semn- 1 Caracteristic Parte fracționară a mantisei Mantisa normalizată Caracteristica K B = = = C3FA


0 14 16 c) D= - = - 0,9 16 m B =0,9 16 p xB =40+0=40" title="c) C= ​​​​​15 =F,E 16 m c =0 ,FE 16 p xA =40+1=41 16 Semn - 0 Caracteristică - 1000001 Parte fracțională - 1111 1110 0000 0000 0000 0000 mantisa K C = 0,1000001,1111 1110 00000000000000000000000000000 00 16 > 0 14 16 c) D = - = - 0,9 16 m B =0,9 16 p xB =40+0=40" class="link_thumb"> 28 !} c) C= ​​​​15 =F,E 16 m c =0,FE 16 p xA =40+1=41 16 Semn - 0 Caracteristic Parte fracționară a mantisei K C = = =41FE > c) D= - = - 0,9 16 m B =0,9 16 p xB =40+0=40 16 Semn- 1 Caracteristic Parte fracționară a mantisei K D = = C 0 14 16 c) D= - = - 0,9 16 m B =0,9 16 p xB = 40+ 0=40"> 0 14 16 c) D= - = - 0,9 16 m B =0,9 16 p xB =40+0=40 16 Semn - 1 Caracteristică - 1000000 Parte fracționară - 1001 0000 0000 0000 K = 0000000000000000000001 .1001 0000 0000 0000 0000 0000 2 = C0900000 16 0 14 16 c) D= - = - 0,9 16 m B =0,9 16 p xB =40+0=40" title=" в)5 F,E 16 m c =0,FE 16 p xA =40+1=41 16 Semn - 0 Caracteristică - 1000001 Parte fracționară - 1111 1110 0000 0000 0000 0000 mantisa K C = 0,10000001010100101 000 2 = =41FE0000 16 > 0 14 16 c) D= - = - 0,9 16 m B =0,9 16 p xB =40+0=40"> title="c) C= ​​​​15 =F,E 16 m c =0,FE 16 p xA =40+1=41 16 Semn - 0 Caracteristic - 1000001 Parte fracționară - 1111 1110 0000 0000 0000 0000 mantisa K C = 10010101010 0000 0000 0000 2 = =41FE0000 16 > 0 14 16 c) D= - = - 0,9 16 m B =0,9 16 p xB =40+0=40">!}


Acțiuni asupra numerelor prezentate în formă exponențială 1. Numerele în formă exponențială sunt stocate în memorie în cod direct cu mantise normalizate. 2. Adăugarea codurilor se realizează prin adăugarea de mantise numai cu aceleași ordine (caracteristici) ale termenilor. Ordinul cel mai înalt este ales ca ordine generală. 3. Algoritmii pentru operarea adunării algebrice după egalizarea caracteristicilor depind de semnele termenilor. 4.Rezultatele în cod direct sunt normalizate.


Exemple Efectuați adăugarea codului de mașină a numerelor în virgulă mobilă A și B pe o grilă de 32 de biți. Ca răspuns, notați codul rezultat (în a 2-a și a 16-a s/s) și numărul zecimal corespunzător acestui cod 1)K A =43.F34000K B = C1.A13000 a)m A =00.F34m B =00 .A13 P Ax =43P Bx =41 => P =2 => m B =00.00A13 – PC _ A13 FF.FF5ED b)m A +m B = 00.F34 FF.FF5ED 100.F29ED > 0 => m A+ B = 00.F29ED P =2 => m B =00.00A13 – PC _100.00000 00.00A13 FF.FF5ED b)m A +m B = 00.F34 FF.FF5ED 100.F29ED > 0 => m A+B = 00.F29ED" >


P A+B = 3A+B = 0.F29ED = F29,ED 16 = /16+13/256 = /256 K A+B = = = 43.F29ED0

Cuvinte cheie:

  • deversare
  • reprezentare întreg fără semn
  • reprezentare întreg cu semn
  • reprezentarea numerelor reale
  • format virgulă mobilă

1.2.1. Reprezentare intreg

Memoria computerului este formată din celule, fiecare dintre acestea fiind un sistem fizic format dintr-un anumit număr de elemente omogene. Aceste elemente au două stări stabile, dintre care una corespunde zero, iar cealaltă uneia. Fiecare astfel de element servește la stocarea unuia dintre biți - cifrele unui număr binar. De aceea fiecare element de celulă este numit bit sau cifră (Fig. 1.2).

Orez. 1.2. Celula de memorie

Pentru reprezentarea computerizată a numerelor întregi se folosesc mai multe metode de reprezentare diferite, care diferă unele de altele prin numărul de cifre (întregii sunt de obicei alocate 8, 16, 32 sau 64 de cifre) și prezența sau absența unei cifre semn. Reprezentarea fără semn poate fi folosită numai pentru numerele întregi nenegative;

Răspândit în tehnologie informatică a primit date nesemnate. Acestea includ obiecte precum adrese de celule, diverse contoare (de exemplu, numărul de caractere din text), precum și numere care indică data și ora, dimensiunea imaginilor grafice în pixeli etc.

Valoarea maximă a unui număr întreg nenegativ este atinsă atunci când toți biții celulei îi conțin. Pentru reprezentarea pe n biți va fi egal cu 2 n -1. Numărul minim corespunde la n zerouri stocate în n biți de memorie și este egal cu zero.

Următoarele sunt valorile maxime pentru numerele întregi fără semn pe n biți:

Pentru a obține o reprezentare computerizată a unui întreg fără semn, este suficient să convertiți numărul în sistemul de numere binar și să completați rezultatul rezultat din stânga cu zerouri la capacitatea de cifre standard.

Exemplul 1. Numărul 53 10 = 110101 2 în reprezentare cu opt cifre are forma:

Același număr 53 din șaisprezece cifre va fi scris după cum urmează:

Când este reprezentată cu un semn, cea mai semnificativă cifră (stânga) este atribuită semnului numărului, cifrele rămase sunt atribuite numărului însuși. Dacă numărul este pozitiv, atunci O este plasat în bitul de semn, dacă numărul este negativ - 1. Această reprezentare a numerelor se numește cod direct. În computere, codurile directe sunt folosite pentru a stoca numere pozitive în dispozitivele de stocare pentru a efectua operațiuni pe numere pozitive.

Site-ul web al Centrului Federal pentru Informații și Resurse Educaționale (http://fcior.edu.ru/) conține un modul de informare „Numărul și codul computerului" Cu această resursă puteți obține Informații suplimentare pe tema studiată.

Pentru a efectua operații pe numere negative, se folosește un cod suplimentar pentru a înlocui operația de scădere cu adunarea. Puteți afla algoritmul pentru generarea de cod suplimentar folosind modul de informare„Cod suplimentar”, postat pe site-ul Centrului Federal pentru Informații și Resurse Educaționale (http://fcior.edu.ru/).

1.2.2. Reprezentarea numerelor reale

Orice număr real A poate fi scris în formă normală (științifică, exponențială):

A = ±m q p ,

    m - mantisa numărului;

    p - ordinea numerelor.

De exemplu, numărul 472.000.000 poate fi reprezentat astfel: 47,2 10 7, 472 10 6, 4720 10 7 etc.

Este posibil să fi întâlnit forma normală de scriere a numerelor atunci când efectuați calcule folosind un calculator, când ați primit ca răspuns intrări de următoarea formă: 4.72E+8.

Aici, semnul „E” denotă baza sistemului numeric zecimal și este citit ca „înmulțire cu zece la putere”.

Din exemplul de mai sus, puteți vedea că poziția punctului zecimal într-un număr se poate modifica. Prin urmare, reprezentarea numerelor reale în formă normală într-un computer se numește reprezentare în virgulă mobilă.

Pentru consistență, mantisa este de obicei scrisă ca o fracție proprie cu o cifră diferită de zero după virgulă. În acest caz, numărul 472.000.000 ar fi reprezentat ca 0,472 10 9

Un număr în virgulă mobilă poate ocupa 32 sau 64 de biți din memoria computerului. În acest caz, biții sunt alocați pentru a stoca semnul mantisă, semnul ordinului, ordinea și mantisa.

Gama de reprezentare a numerelor reale este determinată de numărul de biți alocați pentru a stoca ordinea numărului, iar precizia este determinată de numărul de biți alocați pentru a stoca mantisa.

Valoarea maximă a ordinii unui număr, așa cum se vede din exemplul de mai sus, este 1111111 2 = 127 10 și, prin urmare, valoarea maximă a numărului este:

0,11111111111111111111111 10 1111111

Încercați să vă dați seama singur care este echivalentul zecimal al acestei valori.

Gama largă de reprezentări în virgulă mobilă este importantă pentru științifice și probleme de inginerie. În același timp, trebuie înțeles că algoritmii de procesare a numerelor în format virgulă mobilă necesită mai multă muncă în comparație cu algoritmii de procesare a numerelor întregi.

Cel mai important

Pentru a reprezenta numerele întregi pe un computer, se folosesc mai multe metode diferite, care diferă unele de altele prin numărul de cifre (8, 16, 32 sau 64) și prezența sau absența unei cifre semn.

Pentru a reprezenta un întreg fără semn, acesta ar trebui convertit în sistemul de numere binar, iar rezultatul rezultat ar trebui să fie completat în stânga cu zerouri la capacitatea standard.

Când este reprezentată cu un semn, cea mai semnificativă cifră este atribuită semnului numărului, cifrele rămase sunt atribuite numărului însuși. Dacă numărul este pozitiv, atunci 0 este plasat în bitul semn dacă numărul este negativ, atunci 1. Numerele pozitive sunt stocate în computer în cod direct, numerele negative în cod complementar.

Numerele reale sunt stocate într-un computer în format virgulă mobilă. În acest caz, orice număr este scris astfel:

A = ±m q p ,

    m - mantisa numărului;

    q - baza sistemului de numere;

    p - ordinea numerelor.

Întrebări și sarcini

  1. Cum sunt reprezentate numerele întregi pozitive și negative în memoria computerului?
  2. Orice număr întreg poate fi tratat ca un număr real, dar cu o parte fracțională zero. Justificați fezabilitatea de a avea modalități speciale de reprezentare computerizată a numerelor întregi.
  3. Reprezentați numărul 63 10 în format nesemnat pe 8 biți.
  4. Găsiți echivalentele zecimale ale numerelor folosind codurile lor directe, scrise în format semnat pe 8 biți:
  5. Care dintre numerele 443 8, 101010 2, 256 10 pot fi stocate în format de 8 biți?
  6. Scrie următoarele numere în formă naturală:

      a) 0,3800456 10 2;

      b) 0,245 10 -3;

      c) 1,256900E+5;

      d) 9,569120E-3.

  7. Scrieți numărul 2010.0102 10 ca cinci în diverse moduriîn formă normală.
  8. Scrieți următoarele numere în formă normală cu o mantisă normalizată - o fracție proprie care are o cifră diferită de zero după virgulă:

    a) 217,934 10;

    c) 0,00101 10.

  9. Desenați o diagramă care conectează conceptele de bază discutate în acest paragraf.

Există două formate principale pentru reprezentarea numerelor în memoria computerului, unul dintre ele este folosit pentru a codifica numerele întregi (reprezentarea în virgulă fixă ​​a unui număr), al doilea este folosit pentru a specifica un anumit subset de numere reale (reprezentarea în virgulă mobilă a unui număr). ). Să ne uităm la fiecare dintre formate mai detaliat.

1.1. Reprezentare intreg

Orice număr întreg poate fi considerat un număr real, dar cu o parte fracțională zero, adică ne-am putea limita la reprezentarea numerelor reale într-un computer și la implementarea operațiilor aritmetice asupra acestora, dar pentru utilizarea eficientă a memoriei computerului, creșterea vitezei de calcul și introducerea operației de împărțire a întregilor Întregi sunt reprezentați în moduri special concepute.

Pentru reprezentarea computerizată a numerelor întregi, se folosesc de obicei mai multe metode diferite, care diferă unele de altele prin numărul de cifre binare și prezența sau absența unei cifre de semn.

Numerele întregi dintr-un computer sunt stocate în memorie în formatul c. punct fix. În acest caz, fiecare cifră a unei celule de memorie corespunde întotdeauna aceleiași cifre, iar „virgula” este „situată” în dreapta după cifra cea mai puțin semnificativă, adică în afara grilei de biți.

1.1.1. numere întregi fără semn

Să ne uităm la codificarea numerelor întregi fără semn folosind exemplul tipului de date octetîn limbaj De bazăŞi nesemnat charîn limbaj CU++, ocupând un octet în memorie.

Pentru a obține o reprezentare computerizată (internă) a unui număr întreg nenegativ de un octet, este suficient să îl convertiți în sistemul de numere binar și rezultatul rezultat, numit cod direct al numărului, să fie completat în stânga cu zerouri până la opt biți.

Numărul minim este reprezentat de zerouri în toate cifrele și este egal cu zero. Numărul maxim reprezentabil corespunde celor din toate cifrele celulei (un număr binar format din opt unități este egal cu 255 (); Exemple de codificare a numerelor întregi fără semn pe un singur octet sunt date în tabel. 1.

Numerele întregi nenegative pe un singur octet pot fi utilizate, de exemplu, pentru a organiza diverse contoare, pentru a înregistra adresele celulelor, data și ora și dimensiunea imaginilor grafice în pixeli.

Pentru a îmbunătăți lizibilitatea reprezentării interne a unui număr, acesta este scris în sistemul numeric hexazecimal.

Tabelul 1

Exemple de codificare a numerelor întregi fără semn

1.1.2. numere întregi semnate

Să luăm în considerare codificarea numerelor întregi cu semn folosind exemplul tipului de date întregîn limbaj De bazăŞi intîn limbaj CU++, ocupând doi octeți (16 biți) în memorie.

Fiecare dintre cei 16 biți are un scop specific, forma de reprezentare a unui întreg cu semn este prezentată în Fig. 1. Semnul este atribuit celei mai semnificative cifre a celulei: 0 – pentru numerele pozitive, 1 – pentru cele negative.

Pentru a reprezenta numerele întregi cu semn într-un computer, se folosește un cod suplimentar, care vă permite să înlocuiți operația aritmetică de scădere cu o operație de adunare, care crește semnificativ viteza de calcul.

Pentru a înțelege ce este codul suplimentar, să ne uităm la codurile înainte și inversă.

Nota 1. Pentru numerele pozitive, toate cele trei coduri coincid cu reprezentarea binară a numărului folosind șaisprezece cifre binare, cu zerouri scrise în cifrele goale.

Orez. 1. Forma întreg semnată

Să ne imaginăm algoritm obținerea unui cod binar suplimentar de șaisprezece biți al unui număr negativ.

1) Notează codul direct al unui număr negativ din 16 cifre binare. Pentru a face acest lucru, modulul unui număr întreg negativ trebuie convertit în sistemul de numere binar, iar rezultatul rezultat trebuie completat în stânga cu zerouri de până la 16 biți.

2) Scrieți codul invers al unui număr negativ din 16 cifre binare. Pentru a face acest lucru, inversați valorile tuturor biților codului direct (înlocuiți toate zerourile cu unu și toți cei cu zerouri).

3) Notează codul suplimentar al unui număr negativ din 16 cifre binare. Pentru a face acest lucru, adăugați unul la codul invers, considerat ca un număr binar nenegativ de șaisprezece biți.

Nota 2. Codul reciproc al unui număr negativ este modulul complementului numărului respectiv
, iar codul suplimentar este până la număr
.

Exemple de reprezentare a numerelor întregi cu semn de doi octeți sunt date în tabel. 2.

Cel mai mic număr negativ care poate fi reprezentat folosind doi octeți este –32768.

Numărul pozitiv maxim reprezentabil corespunde celor din toți biții celulei (un număr binar format din zero (în bitul de semn) și cincisprezece uni), este egal cu 32767 (
).

Tabelul 2

Exemple de reprezentare a numerelor întregi cu semn de doi octeți

§ 1.2. Reprezentarea numerelor într-un computer

Reprezentarea numerelor pe computer. Întrebări și sarcini

1. Citiți materialele de prezentare pentru paragraful conținute în anexa electronică la manual. Utilizați aceste materiale atunci când pregătiți răspunsurile la întrebări și finalizați temele.

2. Cum sunt reprezentate numerele întregi pozitive și negative în memoria computerului?

3. Orice număr întreg poate fi considerat un număr real, dar cu o parte fracțională zero. Justificați fezabilitatea de a avea modalități speciale de reprezentare computerizată a numerelor întregi.

4. Reprezentați numărul 63 10 în format nesemnat pe 8 biți.

5. Găsiți echivalentele zecimale ale numerelor folosind codurile lor directe, scrise în format semnat pe 8 biți:

    a) 01001100;
    b) 00010101.

6. Care dintre numerele 443 8, 101010 2, 256 10 poate fi stocat în format de 8 biți?

7. Scrie următoarele numere în formă naturală:

    a) 0,3800456 10 2;
    b) 0,245 10 -3;
    a) 1,256900E+5;
    a) 9,569120E-3.

8. Scrieți numărul 2010.0102 10 în cinci moduri diferite în formă exponențială.

9. Scrieți următoarele numere în formă exponențială cu o mantisă normalizată - o fracție proprie care are o cifră diferită de zero după virgulă:

    a) 217,934 10;
    b) 75321 10;
    c) 0,00101 10.

10. Desenați o diagramă care conectează conceptele de bază discutate în acest paragraf.

Răspunsuri: Reprezentarea numerelor într-un computer

    9. a) 0,217934 10 3; b) 0,75321 10 5; c) 0,101 10 -2.

© 2024 ermake.ru -- Despre repararea PC-ului - Portal de informații