Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  

CATEGORII DOCUMENTE





AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Sisteme de numeratie utilizate in tehnologia digitala

algoritmi

+ Font mai mare | - Font mai mic







DOCUMENTE SIMILARE

Trimite pe Messenger
Conducerea Proiectelor software - Evaluarea costurilor proiectelor software
PROGRAMAREA LINIARA - Programarea matematica
Metoda „programarii dinamice”
Problema celor 8 dame
Metoda Greedy - aplicabila problemelor de optim
LATCH-URI SI BISTABILE IMPLEMENTATE IN VERILOG
Optimizarea fluxurilor informationale ale unei case de schimb valutar
ALGORITMUL SIMPLEX
Algoritmi - Probleme laborator
PROIECT ASDN - Sinteza unui ceas electronic desteptator

Sisteme de numeratie utilizate in tehnologia digitala

Metodele de stocare a informatiilor sunt ineficiente atunci cand informatiile ce trebuie memorate sunt de natura numerica.         Pentru intelegere, sa presupunem ca vrem sa stocam nr. 99 sub forma unor simboluri ASCII (fiecare simbol necesita 8 biti), sunt necesari 16 biti, dar observam ca acesta este cel mai mare numar stocabil pe 16 biti.



O abordare mult mai eficienta este stocarea valorii reprezentate in bazele doi (binar), opt(octal), saisprezece (hexazecimal).

Sistemul de numeratie binar

Dispozitivele digitale prin natura lor constructiva folosesc sistemul de numeratie binar (baza 2).

Sistemul binar utilizeaza evident doar doua caractere (cifre) , 0 si 1, si se bazeaza pe puterile  lui 2, exemplificat mai jos.

210

29

28

27

26

25

24

23

22

21

 20

2-1

2-2

2-3

2-4

2-5

2-6

1024

512

256

128

64

32

16

8

4

2

  1

.5

.25

.125

.0625

.03125

.015625

1/2

1/4

1/8

1/16

1/32

1/64

Prezentam in continuare cateva exemple de numere scrise in baza 2 si modul lor de conversie (o metoda) in baza 10.

De regula pentru a identifica un numar binar se adauga b sau B la sfarsitul sirului numeric.

111b,  10101b,  0.1011b,  1010.0101b

Pentru a realiza conversia acestor numere, din baza doi in baza zece, vom proceda astfel :

Pentru numerele binare intregi cifra 0 sau 1 de pe pozitia cea mai din dreapta se pozitioneaza pe verticala 20 si apoi catre stanga sunt pozitionate celelalte cifre ale numarului binar.

Pentru numerele binare fractionare pentru partea intreaga se procedeaza identic ca mai sus, iar pentru fractionara se se pozitioneaza cifra 0 sau 1, prima dupa punctul fractionar pe verticala 2-1 si apoi catre dreapta sunt pozitionate celelalte cifre ale partii fractionare a numarului binar.

210

29

28

27

26

25

24

23

22

21

 20

2-1

2-2

2-3

2-4

2-5

2-6

1024

512

256

128

64

32

16

8

4

2

  1

.5

.25

.125

.0625

.03125

.015625

1/2

1/4

1/8

1/16

1/32

1/64

1

1

1

                                                                                           4  +   2 +    1  =  7

1

0

1

0

1

                                                                        16 +  0 +    4  +   0 +    1  = 21

0

1

0

1

1

                                                                            0.6875   =    11/16        =         1/2  +      0  +     1/8  +    1/16

1

0



1

0

0

1

0

1

                            10.3125      =  10  5/16        =       8  +   0  +   2          +        0   +     1/4    +      0    +    1/16

Pentru a realiza conversia unor numere zecimale (  Ex. 75, 25.5625  ) in baza doi vom proceda astfel :

210

29

28

27

26

25

24

23

22

21

 20

2-1

2-2

2-3

2-4

2-5

2-6

1024

512

256

128

64

32

16

8

4

2

  1

.5

.25

.125

.0625

.03125

.015625

1/2

1/4

1/8

1/16

1/32

1/64

                                                      64        +              8       +       2   +    1    =    75

1

0

0

1

0

1

  1

                                                                         16  + 8         +                1      +    1               +                   1    =   25.5625

 1

1

0

0

  1

  1

0

0

    1

Folosind tabelul de mai sus pentru conversia lui 75, cautam valoarea celei mai mari puteri pozitive a lui  2 mai mica/egala decat  numarul de convertit 75, aceasta este 64, se face scaderea 75 – 64 = 11 pentru aceasta valoare se cauta din   nou in tabel o valoare a puterilor a lui 2 mai mica/egala si se gaseste 8, se face scaderea 11 - 8 = 3 pentru aceasta valoare se cauta din   nou in tabel o valoare a puterilor a lui 2 mai mica/egala si se gaseste 2, se face scaderea 3 – 2 = 1 pentru aceasta valoare se cauta din   nou in tabel o valoare a puterilor a lui 2 mai mica/egala si se gaseste 1. In acest moment am terminat conversia si pentru a identifica numarul binar rezultat, folosind tabelul, procedam astfel, in coloana 64 (26) scriem 1, in coloana 8 (23) scriem 1, in coloana 2 (21) scriem 1, in coloana 1 (20) scriem 1, iar pentru puterile lui doi dintre aceste cifre completam cu zerouri.

Pentru conversia lui 25.5625 se procedeaza ca mai sus pentru partea intreaga, iar pentru partea fractionara (0.5625) cautam valoarea celei mai mari puteri a lui  2 mai mica/egala decat  numarul de convertit aceasta este 0.5 se face scaderea 0.5625 – 0.5 = 0.0625 pentru aceasta valoare se cauta din   nou in tabel o valoare a puterilor a lui 2 mai mica/egala si se gaseste 0.0625 In acest moment am terminat conversia si pentru a identifica numarul binar rezultat, folosind tabelul, procedam astfel, in coloana 16 (24) scriem 1, in coloana 8 (23) scriem 1, in coloana 1 (20) scriem 1, in coloana 1 (2-1) scriem , in coloana 1 (2-4) scriem 1, iar pentru puterile lui doi dintre aceste cifre completam cu zerouri.

Trebuie precizat faptul ca putem reprezenta  exact doar valorile fractionare bazate pe puterile lui 2. De exemplu 0.33(3) nu poate fi reprezentat decat cu o aproximatie mai mare sau mai mica.

0.010101                           =  0.328125

0.0101010001                   =  0.329102

0.010101000111101         =  0.329986572

0.0101010001111010111 =  0.329999924

Operatiile matematice in binar se efectueaza astfel :

·         Adunarea   :   0+0=0          0+1=1                          1+0=1              1+1=0 si transport 1

·         Scaderea    :   0- 0=0          0- 1=1 si transport 1    1- 0=1              1- 1=0 

·         Inmultirea  :   0*0=0          0*1=0                          1*0=0              1*1=1

·         Impartirea  :   o combinatie de inmultire cu scadere

( Adaugarea unui zero in dreapta deimpartitului este insotita de de plasarea unui zero la dreapta catului)

Exemplificarea in detaliu a operatiei de adunare in binar :

Pentru a aduna doua valori reprezentate in notatia binara, se procedeaza astfel:

            Se aduna cifrele din coloana cea mai din dreapta, se scrie cifra cea mai putin semnificativa a acestei sume sub coloana, se transporta cea mai semnificativa cifra a sumei (daca exista) in urmatoarea coloana din stanga si se aduna apoi cu cifrele din coloana respectiva.

            Exemplu :                                0 0 1 1 1 0 1 0

                                                      +    0 0 0 1 1 0 1 1

            Se aduna cifrele cele mai din dreapta 0 si 1 si obtinem cifra 1, pe care o scriem sub coloana respectiva.

                                                            0 0 1 1 1 0 1 0

                                                         + 0 0 0 1 1 0 1 1

                                                                                 1

            Se aduna apoi 1 si 1 din coloana urmatoare, obtinand rezultatul 10. Vom scrie 0 sub coloana si vom transfera cifra 1 deasupra coloanei urmatoare.

                                                                           1      

                                                            0 0 1 1 1 0 1 0

                                                         + 0 0 0 1 1 0 1 1

                                                                           1 0 1

            Se aduna cifrele 1, 0 si 0 din coloana urmatoare, obtinand rezultatul 1, si vom scrie 1 sub coloana.

           

Cifrele din coloana urmatoare 1 si 1 dau ca rezultat al adunarii 10; se va scrie cifra 0 sub coloana respectiva si vom transfera cifra 1 deasupra coloanei urmatoare.

                                                                     1

                                                            0 0 1 1 1 0 1 0

                                                         + 0 0 0 1 1 0 1 1

                                                                        0 1 0 1

            Adunam cifrele  1, 1 si 1 din aceasta coloana si obtinem 11; se va scrie cifra 1 sub coloana respectiva si vom transfera cifra 1 deasupra coloanei urmatoare.

                                                                  1   

                                                            0 0 1 1 1 0 1 0

                                                         + 0 0 0 1 1 0 1 1

                                                                     1 0 1 0 1

            Se va continua in acelasi fel, obtinand in final:

                                                            0 0 1 1 1 0 1 0

                                                      +    0 0 0 1 1 0 1 1

                                                            0 1 0 1 0 1 0 1

Observatii :

  • Inmultirea cu 2 a unui numar binar este echivalenta cu adaugarea unui 0 la dreapta sa
  • Impartirea cu 2 a unui numar binar este echivalenta cu deplasarea unui punct virtual aflat in dreapta ultimei cifre binare, cu o pozitie la stanga
  • Valoarea zecimala maxima ce se poate reprezenta pe n biti este 2n – 1 (pe 8 biti valoarea maxima este 11111111(2), adica 28 -1 = 255(10)
  • Cateva valori remarcabile in baza doi :  210 = 1024 (1K)   ;  220 =  1048576 (1M) ;  230 = 1073741824 (1G)

Pentru a afla reprezentarea in binar a unui numar zecimal (baza 10) exista si un algoritm clasic.

Pasul 1.            Se imparte valoarea la doi si se memoreaza restul.

Pasul 2.            Cat timp catul obtinut difera de zero, se continua impartirea noului cat la doi, memorandu-se restul.

Pasul 3.            Cand s-a obtinut un cat egal cu zero, reprezentarea in binar a valorii initiale consta din resturile impartirilor afisate de la dreapta la stanga in ordinea in care au fost memorate.

   

                         rest 1

                

              rest 0

              

               rest 1

  

               rest 1

                                                            1        1        0       1          

Reprezentarea  in  binar  a  numarului  treisprezece folosind algoritmul propus mai sus

Sistemul de numeratie octal

Sunt utilizate in sistemul octal caracterele de la 0 - la 7 si se bazeaza pe puterile lui 8 conform exemplificarii de mai jos

86

85

84

83

82

81

80




8-1

8-2

8-3

8-4

262144

32768

4096

512

64

2

  1

.125

.015625

.001953125

,000244140625

1/8

1/64

1/512

1/4096

Prezentam in continuare cateva exemple de numere scrise in baza 8 si modul lor de conversie (o metoda) in baza 10.

De regula pentru a identifica un numar octal se adauga q sau Q la sfarsitul sirului numeric.

7q, 25q, 0.54q, 12.24q

Pentru a realiza conversia acestor numere, din baza opt in baza zece, vom proceda astfel :

Pentru numerele octale intregi cifra de pe pozitia cea mai din dreapta se pozitioneaza pe verticala 80 si apoi catre stanga sunt pozitionate celelalte cifre ale numarului octal.

Pentru numerele octale fractionare pentru partea intreaga se procedeaza identic ca mai sus, iar pentru partea fractionara se pozitioneaza cifra cea mai din stanga, prima dupa punctul fractionar  pe verticala 8-1 si apoi catre dreapta sunt pozitionate celelalte cifre ale partii fractionare a numarului octal.

In sistemul octal operatiile aritmetice de baza tin cont de transport spre stanga ( la adunare si la inmultire), respectiv de imprumutdin stnga (la scadere si la impartire)

86

85

84

83

82

81

80

8-1

8-2

8-3

8-4

262144

32768

4096

512

64

2

  1

.125

.015625

.001953125

,000244140625

1/8

1/64

1/512

1/4096

7

                                                                                           7  =  7

2

5

                                                                                 16 +  5  = 21

0

5

4

                                    0.6875   =    11/16       =   44/64        =         5/8 +   4/64

1

2



2

4

        10.312       =     10 5/16    = 10 20/64      =       8  +   2   +       2/8  +  4/64

Operatiile aritmetice de baza se bazeaza pe transport spre stanga – la suma si inmultire, respectiv pe imprumut din stanga - la scadere si impartire

Observatii :

  • Inmultirea cu 8 a unui numar octal este echivalenta cu adaugarea unui 0 la dreapta sa
  • Impartirea cu 8 a unui numar octal este echivalenta cu deplasarea unui punct virtual aflat in dreapta ultimei cifre octale, cu o pozitie la stanga

Sistemul de numeratie hexazecimal

Sunt  utilizate in  sistemul hexazecimal   caracterele de la 0 - la 9, A  (echivalent cu 10), B (echivalent cu 11),   C (echivalent cu 12),  D (echivalent cu 13),  E (echivalent cu 14), F (echivalent cu 15), si se bazeaza pe puterile lui 16 conform exemplificarii de mai jos

165

164

163

162

161

160

16-1

16-2

16-3

16-4

884736

55296

3456

256

16

  1

.0625

.00390625

.00244140625

.00001525878906

1/16

1/256

1/3456

1/55296

De regula pentru a identifica un numar hexazecimal se adauga h sau H la sfarsitul sirului numeric (alfanumeric).

Prezentam in continuare cateva exemple de numere scrise in baza 16 si modul lor de conversie (o metoda) in baza 10.

7h,  15h,  0.Bh,  A.5h

Pentru a realiza conversia acestor numere, din baza saisprezece in baza zece, vom proceda astfel :

Pentru numerele hexazecimale intregi cifra de pe pozitia cea mai din dreapta se pozitioneaza pe verticala 160 si apoi catre stanga sunt pozitionate celelalte cifre ale numarului hexazecimal.

Pentru numerele hexazecimale fractionare pentru partea intreaga se procedeaza identic ca mai sus, iar pentru partea zecimala se pozitioneaza cifra cea mai din stanga, prima dupa punctul fractionar pe verticala 16-1 si apoi catre dreapta sunt pozitionate celelalte cifre ale partii fractionare a numarului hexazecimal.

165

164

163

162

161

160

16-1

16-2

16-3

16-4

884736

55296

3456

256

16

  1

.0625

.00390625

.00244140625

.00001525878906

1/16

1/256

1/3456

1/55296

7

                                                                                            7

1

5

                                                                                1  +     5    =   21

0

B

                                            0.6875   =    11/16        =         0     +   11/16

A

5

                                         10 .3125   =  10  5/16      =        A     +     5/16

Pentru a realiza conversia numerelor din baza doi in baza opt si saisprezece se va proceda astfel:

a) Conversia in baza opt.

Pentru numerele binare intregi se realizeaza grupe de  cate trei cifre, incepand cu pozitia cea mai din dreapta catre stanga, Pentru fiecare grupa, astfel constituita, se calculeaza valoarea in baza doi dupa regula prima pozitie de la dreapta la stanga este 20 , urmatoarea 21 si a treia si cea mai din stanga 22.

Pentru numerele binare fractionare, pentru partea intreaga conversia se realizeaza ca mai sus,  pentru partea fractionara plecand de la punctul fractionar se realizeaza  grupe de cate trei cifre incepand cu pozitia cea mai din stanga catre dreata. Pentru fiecare grupa astfel constituita se calculeaza valoarea in baza doi dupa aceiasi regula ca si la partea intreaga.

Exemple:

111010101.1010111(2) = 111/010/101.101/011/1 = 725.534(8)        

10111101.00010111(2) = 10/111/101.000/101/11 = 275.056 (8)

b) Conversia in baza saisprezece.

Pentru numerele binare intregi se realizeaza grupe de  cate patrui cifre, incepand cu pozitia cea mai din dreapta catre stanga, Pentru fiecare grupa, astfel constituita, se calculeaza valoarea in baza doi dupa regula prima pozitie de la dreapta la stanga este 20 , urmatoarea 21 , a treia pozitie 22 si a patra pozitie si cea mai din stanga 23.

Pentru numerele binare fractionare, pentru partea intreaga conversia se realizeaza ca mai sus,  pentru partea fractionara plecand de la punctul fractionar se realizeaza  grupe de cate patru cifre incepand cu pozitia cea mai din stanga catre dreata. Pentru fiecare grupa astfel constituita se calculeaza valoarea in baza doi dupa aceiasi regula ca si la partea intreaga.

Exemple:

10111101.00011101(2) = 1011/1101.0001/1111 = BD.1F(16)        

111010101.0000110111(2) = 1/1101/0101.0000/1101/11 = 1D5.0DC(16)        

[Sunt  utilizate in  sistemul hexazecimal   caracterele de la 0 - la 9, A  (echivalent cu 10), B (echivalent cu 11),   C (echivalent cu 12),  D (echivalent cu 13),  E (echivalent cu 14), F (echivalent cu 15)]








Politica de confidentialitate

DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 862
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2019 . All rights reserved

Distribuie URL

Adauga cod HTML in site