Pentru a reprezenta un număr întreg pozitiv, trebuie să convertim binarul în zecimal. Facem acest lucru prin înmulțirea bitului ith cu 2i. Astfel, bitul cel mai din dreapta este înmulțit cu 20, sau 1, al doilea bit cel mai din dreapta cu 21 sau 2, iar al treilea bit cel mai din dreapta cu 22 sau 4, și așa mai departe.

Atunci 1010 binar este: 1*23+ 0*22+1*21+0*20 = 8+0+2+0 = 10 zecimal

O altă modalitate de exprimare: pornind de la bitul cel mai din dreapta și mergând spre stânga, atribuim 1,2,4,8,16,32, etc. fiecărui bit care este 1.
De asemenea, putem lua un număr binar și îl putem converti în binar. O modalitate de a face acest lucru este să scrieți valorile în baza 10 ale fiecărui bit până când găsiți unul care este mai mare decât numărul pe care încercați să îl convertiți. Astfel, pentru Numărul în baza 10 155, am scrie valorile corespunzătoare :
valoare: 256 128 64 32 32 16 8 4 2 1
Pentru a obține 155, nu putem avea setul de 256 biți, dar putem avea un 128, așa că punem un „1” acolo.
valoare: 256 128 64 32 32 16 8 4 2 1
0 1
Încă avem nevoie de 155-128=27. 64 și 32 sunt prea mari, așa că punem 0-uri acolo și punem un 1 pe 16:
valoare: 256 128 64 64 32 16 8 4 2 1
0 1 0 0 1
Încă mai avem nevoie de 155-128-16=11. Așadar, dăm un „1” la cifra cu valoarea 8. Mai avem nevoie de încă 3, așa că punem un 0 în valoarea 4, și 1-uri în valoarea 2 și valoarea 1. Acest lucru ne dă numărul binar:
valoare: 256 128 64 32 16 16 8 4 4 2 1
0 1 0 0 0 1 1 1 0 1 1
Deci 155 în zecimal este egal cu 010011011 în binar.
Întregilor li se alocă în general 4 octeți (32 de biți) sau, pe calculatoarele pe 64 de biți, adesea 8 octeți.
Reprezentarea numerelor flotante
Numerele cu virgulă flotantă sunt reprezentate în mod similar cu cele întregi, dar unii biți sunt rezervați pentru partea fracționară a numărului. Din acest motiv, flotanților li se alocă, în general, mai mulți biți (de exemplu, 64 în loc de 32).
Exemplu: Să presupunem că vrem să reprezentăm un float cu 6 biți, cei 2 din dreapta fiind partea fracționară. Atunci care ar fi valoarea lui:
101010?

Caractere și șiruri de caractere

Fiecare simbol de pe tastatură – litere, cifre etc. – este reprezentat intern în memoria unui calculator cu un număr. Noi le numim caractere.
Corelările dintre numere și simboluri sunt definite în tabelul ASCII: http://www.lookuptables.com/.
Tabloul de corespondență a fost cunoscut sub numele de tabelul ASCII, sau codul ASCII. Cu ASCII, fiecare simbol era reprezentat cu un număr între 0 și 255 (întrebare: câți biți sunt necesari pentru a stoca un astfel de număr?)

Pentru a nu fi centrate pe limba engleză, sistemele informatice moderne folosesc acum Unicode, care poate reprezenta multe limbi diferite și necesită biți suplimentari pentru a reprezenta fiecare simbol. Dar pentru simbolurile englezești, tabelul ASCII poate fi folosit în continuare pentru a căuta valoarea fiecărui simbol.
Un șir de caractere este o secvență de caractere, de exemplu, „câine”. La nivel intern, stocăm numărul unicode pentru fiecare caracter și un caracter special de sfârșit de șir. Astfel, cuvântul „dog” este de fapt numărul unicode pentru „d”, numărul unicode pentru „o” și caracterul unicode pentru „g” și, în final, caracterul de sfârșit de șir, care este „\0”. „d” este 100 zecimal în tabelul ASCII, astfel încât „dog” este reprezentat cu următoarele numere zecimale (stocate pe 16 biți fiecare):
100 111 103 103 0
Numerele sunt în general stocate ca numere întregi, așa cum s-a explicat mai sus. Dar atunci când primim date de intrare de la utilizator sau afișăm valori, trebuie să gestionăm numere reprezentate ca o secvență de cifre. La fel ca în cazul literelor, cifrele sunt caractere. Cifra „0” reprezintă numărul unicodal 48, iar „9” reprezintă numărul unicodal 57. Șirul „724” este stocat la nivel intern sub forma: 55 50 52 52 0

Foaie de calcul

1. Luați în considerare următorii șaisprezece biți:

0000 0000 0100 1101

a. Care este valoarea numărului dacă acesta reprezintă un număr întreg pozitiv (număr întreg)?
b. Dacă șirul de biți reprezintă un simbol, ce simbol este acesta? Puteți folosi tabelul de căutare ascii http://www.lookuptables.com/

2. Calculatoarele aveau 64K de memorie. Ce înseamnă K? Este un număr rotund? De ce nu lucrează informaticienii cu numere rotunde frumoase, cum ar fi 1000?
3. Ce este un megabyte? Un gigabyte? Ce înseamnă o mie de gigabyte? Un milion de gigabytes?
4. Arătați cum ar fi reprezentate în binar următoarele trei numere în baza 10.

24 1025 43

5. Arătați cum se reprezintă „pisica” în biți?
6. Câte caractere posibile pot fi reprezentate cu unicode (16 biți)?
7. Care este cel mai mare număr întreg care poate fi reprezentat în 4 octeți, dacă luăm în considerare doar numere pozitive?
8. Dacă luăm în considerare și numere negative, care este cel mai mare număr întreg care poate fi reprezentat cu patru octeți ? Cum credeți că sunt reprezentate numerele negative?
9. Scrieți o funcție python care primește ca parametru un șir de cifre și returnează un număr întreg care este valoarea în baza 10 a acelor cifre, de exemplu, dacă parametrul este „723” funcția returnează numărul întreg 723 (Da, știu, Python are o funcție int… o scrieți aici).
10. Scrieți o funcție python care primește ca parametru un șir de cifre în baza 10 și returnează un șir de cifre în baza 2, astfel încât cifrele în baza 2 să fie valoarea convertită a cifrelor originale în baza 10. De exemplu, dacă ar fi trimis „11”, funcția ar returna „1011”.
Efectuați întrebările de mai sus cu creionul și hârtia. Când terminați, vă puteți verifica răspunsurile la conversia binară aici: http://mistupid.com/computers/binaryconv.htm
Ajutor pentru conversia binară:

Numerele binare din CSUNPLUGGED

Numerele binare în 60 de secunde

.

Leave a comment

Adresa ta de email nu va fi publicată.