De la ternar la zecimal online. Cum se transformă din binar în zecimal

Conversia numerelor dintr-un sistem numeric în altul este o parte importantă a aritmeticii mașinii. Să luăm în considerare regulile de bază ale traducerii.

1. Pentru a converti un număr binar într-un număr zecimal, este necesar să îl scrieți sub forma unui polinom, constând din produsele cifrelor numărului și puterea corespunzătoare a lui 2, și să îl calculați conform regulilor din aritmetica zecimala:

Când traduceți, este convenabil să utilizați tabelul puterilor a doi:

Tabelul 4. Puterile numărului 2

n (grad)

Exemplu.

2. Pentru traducere număr octalîn zecimală, este necesar să îl scrieți sub forma unui polinom, constând din produsele cifrelor numărului și puterea corespunzătoare a numărului 8 și să îl calculați conform regulilor aritmeticii zecimale:

Când traduceți, este convenabil să folosiți tabelul puterilor opt:

Tabelul 5. Puterile numărului 8

n (grad)

Exemplu. Convertiți numărul în sistemul numeric zecimal.

3. Pentru a converti un număr hexazecimal într-un număr zecimal, este necesar să îl scrieți sub forma unui polinom, constând din produsele cifrelor numărului și puterea corespunzătoare a numărului 16, și să îl calculați conform regulile de aritmetică zecimală:

Când traduceți, este convenabil de utilizat blitz-ul puterilor numărului 16:

Tabelul 6. Puterile numărului 16

n (grad)

Exemplu. Convertiți numărul în sistemul numeric zecimal.

4. Pentru a converti un număr zecimal în sistem binar, acesta trebuie împărțit succesiv la 2 până când rămâne un rest mai mic sau egal cu 1. Un număr în sistemul binar este scris ca o succesiune a rezultatului ultimei diviziuni și a resturilor din împărțirea în ordine inversă.

Exemplu. Convertiți numărul în sistemul numeric binar.

5. Pentru a converti un număr zecimal în sistemul octal, acesta trebuie împărțit succesiv la 8 până când rămâne un rest mai mic sau egal cu 7. Un număr în sistemul octal este scris ca o secvență de cifre a rezultatului ultimei diviziuni și restul diviziunii în ordine inversă.

Exemplu. Convertiți numărul în sistemul de numere octale.

6. Pentru a converti un număr zecimal în sistemul hexazecimal, acesta trebuie împărțit succesiv la 16 până când există un rest mai mic sau egal cu 15. Un număr din sistemul hexazecimal este scris ca o succesiune de cifre a rezultatului ultimei diviziuni și resturile din împărțire în ordine inversă.

Exemplu. Convertiți numărul în sistem numeric hexazecimal.

Nota 1

Dacă doriți să convertiți un număr dintr-un sistem numeric în altul, atunci este mai convenabil să îl convertiți mai întâi în sistemul numeric zecimal și abia apoi să îl convertiți din sistemul numeric zecimal în orice alt sistem numeric.

Reguli pentru conversia numerelor din orice sistem numeric în zecimal

ÎN tehnologia calculatoarelor, folosind aritmetica mașină, un rol important îl joacă conversia numerelor dintr-un sistem numeric în altul. Mai jos dăm regulile de bază pentru astfel de transformări (traduceri).

    Când convertiți un număr binar într-o zecimală, trebuie să reprezentați numărul binar ca un polinom, fiecare element fiind reprezentat ca produsul unei cifre a numărului și puterea corespunzătoare a numărului de bază, în acest caz $2$, și apoi trebuie să calculați polinomul folosind regulile aritmeticii zecimale:

    $X_2=A_n \cdot 2^(n-1) + A_(n-1) \cdot 2^(n-2) + A_(n-2) \cdot 2^(n-3) + ... + A_2 \cdot 2^1 + A_1 \cdot 2^0$

Figura 1. Tabelul 1

Exemplul 1

Convertiți numărul $11110101_2$ în sistemul numeric zecimal.

Soluţie. Folosind tabelul dat de $1$ puteri ale bazei $2$, reprezentăm numărul ca polinom:

$11110101_2 = 1 \cdot 27 + 1 \cdot 26 + 1 \cdot 25 + 1 \cdot 24 + 0 \cdot 23 + 1 \cdot 22 + 0 \cdot 21 + 1 \cdot 20 = 128 + 6 + 6 + 2 + 0 + 4 + 0 + 1 = 245_(10)$

    Pentru a converti un număr din sistemul de numere octale în sistemul de numere zecimal, trebuie să îl reprezentați ca un polinom, fiecare element fiind reprezentat ca produsul unei cifre a numărului și puterea corespunzătoare a numărului de bază, în acest caz $8$, iar apoi trebuie să calculați polinomul conform regulilor aritmeticii zecimale:

    $X_8 = A_n \cdot 8^(n-1) + A_(n-1) \cdot 8^(n-2) + A_(n-2) \cdot 8^(n-3) + ... + A_2 \cdot 8^1 + A_1 \cdot 8^0$

Figura 2. Tabelul 2

Exemplul 2

Convertiți numărul $75013_8$ în sistemul numeric zecimal.

Soluţie. Folosind tabelul dat de $2$ puteri ale bazei $8$, reprezentăm numărul ca polinom:

$75013_8 = 7\cdot 8^4 + 5 \cdot 8^3 + 0 \cdot 8^2 + 1 \cdot 8^1 + 3 \cdot 8^0 = 31243_(10)$

    Pentru a converti un număr din hexazecimal în zecimal, trebuie să îl reprezentați ca un polinom, fiecare element fiind reprezentat ca produsul unei cifre a numărului și puterea corespunzătoare a numărului de bază, în acest caz $16$, apoi trebuie să calculați polinomul conform regulilor aritmeticii zecimale:

    $X_(16) = A_n \cdot 16^(n-1) + A_(n-1) \cdot 16^(n-2) + A_(n-2) \cdot 16^(n-3) + . .. + A_2 \cdot 16^1 + A_1 \cdot 16^0$

Figura 3. Tabelul 3

Exemplul 3

Convertiți numărul $FFA2_(16)$ în sistemul numeric zecimal.

Soluţie. Folosind tabelul dat de $3$ puteri ale bazei $8$, reprezentăm numărul ca un polinom:

$FFA2_(16) = 15 \cdot 16^3 + 15 \cdot 16^2 + 10 \cdot 16^1 + 2 \cdot 16^0 =61440 + 3840 + 160 + 2 = 65442_(10)$

Reguli pentru conversia numerelor din sistemul numeric zecimal în altul

  • Pentru a converti un număr din sistem zecimal Când se calculează în binar, acesta trebuie împărțit secvențial la $2$ până când există un rest mai mic sau egal cu $1$. Un număr din sistemul binar este reprezentat ca o succesiune a ultimului rezultat al împărțirii și a resturilor din divizare în ordine inversă.

Exemplul 4

Convertiți numărul $22_(10)$ în sistemul numeric binar.

Soluţie:

Figura 4.

$22_{10} = 10110_2$

  • Pentru a converti un număr din sistemul numeric zecimal în octal, acesta trebuie împărțit succesiv la $8$ până când există un rest mai mic sau egal cu $7$. Un număr din sistemul de numere octale este reprezentat ca o succesiune de cifre a rezultatului ultimei diviziuni și resturile din împărțire în ordine inversă.

Exemplul 5

Convertiți numărul $571_(10)$ în sistemul de numere octale.

Soluţie:

Figura 5.

$571_{10} = 1073_8$

  • Pentru a converti un număr din sistemul numeric zecimal în sistemul hexazecimal, acesta trebuie împărțit succesiv la $16$ până când există un rest mai mic sau egal cu $15$. Un număr din sistemul hexazecimal este reprezentat ca o succesiune de cifre a rezultatului ultimei diviziuni și restul divizării în ordine inversă.

Exemplul 6

Convertiți numărul $7467_(10)$ în sistem numeric hexazecimal.

Soluţie:

Figura 6.

$7467_(10) = 1D2B_(16)$

    Pentru a converti o fracție adecvată dintr-un sistem de numere zecimal într-un sistem de numere non-zecimal, este necesar să înmulțiți secvențial partea fracțională a numărului care este convertit cu baza sistemului în care trebuie convertit. Fracție în sistem nou vor fi prezentate sub forma unor părți întregi de lucrări, începând cu prima.

    De exemplu: $0,3125_((10))$ în sistemul de numere octale va arăta ca $0,24_((8))$.

    În acest caz, este posibil să întâmpinați o problemă când o fracție zecimală finită poate corespunde unei fracțiuni infinite (periodice) în sistemul numeric non-zecimal. În acest caz, numărul de cifre din fracția reprezentată în noul sistem va depinde de precizia necesară. De asemenea, trebuie remarcat faptul că numerele întregi rămân numere întregi, iar fracțiile proprii rămân fracții în orice sistem numeric.

Reguli pentru conversia numerelor dintr-un sistem de numere binar în altul

  • Pentru a converti un număr din sistem binar numerotarea în octal, aceasta trebuie împărțită în triade (triple de cifre), începând cu cifra cea mai puțin semnificativă, dacă este necesar, adăugând zerouri la triada principală, apoi înlocuiți fiecare triadă cu cifra octală corespunzătoare conform tabelului 4.

Figura 7. Tabelul 4

Exemplul 7

Convertiți numărul $1001011_2$ în sistemul de numere octale.

Soluţie. Folosind Tabelul 4, convertim numărul din sistemul numeric binar în octal:

$001 001 011_2 = 113_8$

  • Pentru a converti un număr din sistemul de numere binar în hexazecimal, acesta trebuie împărțit în tetrade (patru cifre), începând cu cifra cea mai puțin semnificativă, dacă este necesar, adăugând zerouri la cea mai semnificativă tetradă, apoi înlocuiți fiecare tetradă cu cifra octală corespunzătoare. conform tabelului 4.

Pentru a converti rapid numerele din sistemul numeric zecimal în sistemul binar, trebuie să aveți o bună cunoaștere a numerelor „2 la putere”. De exemplu, 2 10 =1024 etc. Acest lucru vă va permite să rezolvați câteva exemple de traducere literalmente în câteva secunde. Una dintre aceste sarcini este Problema A1 din demonstrația USE 2012. Desigur, puteți lua un timp lung și obositor pentru a împărți un număr la „2”. Dar este mai bine să decideți diferit, economisind timp prețios la examen.

Metoda este foarte simplă. Esenta lui este aceasta: Dacă numărul care trebuie convertit din sistemul zecimal este egal cu numărul „2 la putere”, atunci acest număr din sistemul binar conține un număr de zerouri egal cu puterea. Adăugăm un „1” în fața acestor zerouri.

  • Să convertim numărul 2 din sistemul zecimal. 2=2 1 . Prin urmare, în sistemul binar, un număr conține 1 zero. Punem „1” în față și obținem 10 2.
  • Să convertim 4 din sistemul zecimal. 4=2 2 . Prin urmare, în sistemul binar, un număr conține 2 zerouri. Punem „1” în față și obținem 100 2.
  • Să convertim 8 din sistemul zecimal. 8=2 3 . Prin urmare, în sistemul binar, un număr conține 3 zerouri. Punem „1” în față și obținem 1000 2.


La fel și pentru alte numere „2 la putere”.

Dacă numărul care trebuie convertit este mai mic decât numărul „2 la putere” cu 1, atunci în sistemul binar acest număr este format numai din unități, al căror număr este egal cu puterea.

  • Să convertim 3 din sistemul zecimal. 3=2 2 -1. Prin urmare, în sistemul binar, un număr conține 2 uni. Primim 11 2.
  • Să convertim 7 din sistemul zecimal. 7=2 3 -1. Prin urmare, în sistemul binar, un număr conține 3 uni. Primim 111 2.

În figură, pătratele indică reprezentarea binară a numărului, iar culoarea roz din stânga indică reprezentarea zecimală.


Traducerea este similară pentru alte numere „2 la puterea-1”.

Este clar că translația numerelor de la 0 la 8 se poate face rapid sau prin împărțire, sau pur și simplu cunoaștem pe de rost reprezentarea lor în sistemul binar. Am dat aceste exemple ca să înțelegeți principiul aceasta metodași l-a folosit pentru a traduce mai multe „numere impresionante”, de exemplu, pentru a traduce numerele 127,128, 255, 256, 511, 512 etc.

Puteți întâlni astfel de probleme atunci când trebuie să convertiți un număr care nu este egal cu numărul „2 la putere”, dar aproape de acesta. Poate fi mai mare sau mai mică de 2 la putere. Diferența dintre numărul tradus și numărul „2 la putere” ar trebui să fie mică. De exemplu, până la 3. Reprezentarea numerelor de la 0 la 3 în sistemul binar trebuie doar cunoscută fără translație.

Dacă numărul este mai mare decât , atunci rezolvați astfel:

Mai întâi convertim numărul „2 la putere” în sistem binar. Și apoi adăugăm la acesta diferența dintre numărul „2 la putere” și numărul care este tradus.

De exemplu, să convertim 19 din sistemul zecimal. Este mai mare decât numărul „2 la putere” cu 3.

16=2 4 . 16 10 =10000 2 .

3 10 =11 2 .

19 10 =10000 2 +11 2 =10011 2 .

Dacă numărul este mai mic decât numărul „2 la putere”, atunci este mai convenabil să folosiți numărul „2 la putere-1”. O rezolvam astfel:

Mai întâi convertim numărul „2 în puterea-1” în sistem binar. Și apoi scădem din el diferența dintre numărul „2 la puterea lui 1” și numărul care este tradus.

De exemplu, să convertim 29 din sistemul zecimal. Este mai mare decât numărul „2 la puterea-1” cu 2. 29=31-2.

31 10 =11111 2 .

2 10 =10 2 .

29 10 =11111 2 -10 2 =11101 2

Dacă diferența dintre numărul care este tradus și numărul „2 la putere” este mai mare de trei, atunci puteți împărți numărul în componentele sale, puteți converti fiecare parte în sistemul binar și puteți adăuga.

De exemplu, convertiți numărul 528 din sistemul zecimal. 528=512+16. Traducem 512 și 16 separat.
512=2 9 . 512 10 =1000000000 2 .
16=2 4 . 16 10 =10000 2 .
Acum să-l adăugăm într-o coloană:

Cei care susțin examenul de stat unificat și multe altele...

Este ciudat că în lecțiile de informatică din școli, de obicei, le arată elevilor cel mai complex și incomod mod de a converti numerele dintr-un sistem în altul. Această metodă constă în împărțirea succesivă a numărului inițial la bază și colectarea resturilor din împărțire în ordine inversă.

De exemplu, trebuie să convertiți numărul 810 10 în binar:

Scriem rezultatul în ordine inversă de jos în sus. Se dovedește că 81010 = 11001010102

Dacă trebuie să convertiți numere destul de mari în sistem binar, atunci scara de diviziune capătă dimensiunea unei clădiri cu mai multe etaje. Și cum poți aduna toate cele și zerourile și să nu ratezi niciunul?

ÎN Programul de examen de stat unificatîn informatică include mai multe sarcini legate de traducerea numerelor dintr-un sistem în altul. De obicei, aceasta este o conversie între sistemele octal și hexazecimal și binar. Acestea sunt secțiunile A1, B11. Dar există și probleme cu alte sisteme numerice, cum ar fi în secțiunea B7.

Pentru început, să ne amintim două tabele pe care ar fi bine să le cunoaștem pe de rost pentru cei care aleg informatica ca profesie viitoare.

Tabelul puterilor numărului 2:

2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10
2 4 8 16 32 64 128 256 512 1024

Se obține cu ușurință prin înmulțirea numărului anterior cu 2. Deci, dacă nu vă amintiți toate aceste numere, restul nu sunt greu de obținut în minte din cele pe care le amintiți.

Masa numere binare de la 0 la 15 cu reprezentare hexazecimală:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
0 1 2 3 4 5 6 7 8 9 A B C D E F

Valorile lipsă sunt, de asemenea, ușor de calculat adăugând 1 la valorile cunoscute.

Conversie intreg

Deci, să începem prin a converti direct în sistemul binar. Să luăm același număr 810 10. Trebuie să descompunăm acest număr în termeni egali cu puterile a doi.

  1. Căutăm puterea celor două cele mai apropiate de 810 și să nu o depășească. Acesta este 2 9 = 512.
  2. Scădeți 512 din 810, obținem 298.
  3. Repetați pașii 1 și 2 până când nu mai rămân 1 sau 0.
  4. Am prins așa: 810 = 512 + 256 + 32 + 8 + 2 = 2 9 + 2 8 + 2 5 + 2 3 + 2 1.
Apoi, există două metode, puteți utiliza oricare dintre ele. Cât de ușor este să vezi că în orice sistem numeric baza sa este întotdeauna 10. Pătratul bazei va fi întotdeauna 100, cubul 1000. Adică, gradul bazei sistemului numeric este 1 (unul) și sunt tot atâtea zerouri în spate câte este gradul.

Metoda 1: Aranjați 1 în funcție de rangurile indicatorilor termenilor. În exemplul nostru, acestea sunt 9, 8, 5, 3 și 1. Locurile rămase vor conține zerouri. Deci, am obținut reprezentarea binară a numărului 810 10 = 1100101010 2. Unitățile sunt plasate pe locurile 9, 8, 5, 3 și 1, numărând de la dreapta la stânga de la zero.

Metoda 2: Să scriem termenii ca puteri a doi unul sub celălalt, începând cu cel mai mare.

810 =

Acum să adăugăm acești pași împreună, cum ar fi plierea unui evantai: 1100101010.

Asta e tot. În același timp, problema „câte unități sunt în notația binară a numărului 810?” este, de asemenea, rezolvată simplu.

Răspunsul este atâția termeni (puteri a doi) în această reprezentare. 810 are 5 dintre ele.

Acum exemplul este mai simplu.

Să transformăm numărul 63 în sistemul numeric 5-ari. Cea mai apropiată putere de la 5 la 63 este 25 (pătratul 5). Un cub (125) va fi deja mult. Adică 63 se află între pătratul lui 5 și cub. Apoi vom selecta coeficientul pentru 5 2. Acesta este 2.

Se obține 63 10 = 50 + 13 = 50 + 10 + 3 = 2 * 5 2 + 2 * 5 + 3 = 223 5.

Și, în sfârșit, traduceri foarte ușoare între sistemele 8 și hexazecimale. Deoarece baza lor este o putere de doi, traducerea se face automat, pur și simplu prin înlocuirea numerelor cu reprezentarea lor binară. Pentru sistemul octal, fiecare cifră este înlocuită cu trei cifre binare, iar pentru sistemul hexazecimal, patru. În acest caz, sunt necesare toate zerourile înainte, cu excepția cifrei celei mai semnificative.

Să convertim numărul 547 8 în binar.

547 8 = 101 100 111
5 4 7

Încă unul, de exemplu 7D6A 16.

7D6A 16 = (0)111 1101 0110 1010
7 D 6 A

Să convertim numărul 7368 în sistemul hexazecimal.Mai întâi, scrieți numerele în triplete, apoi împărțiți-le în cvadruple de la sfârșit: 736 8 = 111 011 110 = 1 1101 1110 = 1DE 16. Să convertim numărul C25 16 în sistemul octal. Mai întâi, scriem numerele în patru, apoi le împărțim în trei de la sfârșit: C25 16 = 1100 0010 0101 = 110 000 100 101 = 6045 8. Acum să ne uităm la conversia înapoi în zecimală. Nu este dificil, principalul lucru este să nu faci greșeli în calcule. Extindem numărul într-un polinom cu puteri ale bazei și coeficienți pentru ei. Apoi înmulțim și adăugăm totul. E68 16 = 14 * 16 2 + 6 * 16 + 8 = 3688. 732 8 = 7 * 8 2 + 3*8 + 2 = 474 .

Conversia numerelor negative

Aici trebuie să țineți cont de faptul că numărul va fi prezentat în cod suplimentar. Pentru a converti un număr în cod suplimentar, trebuie să știți dimensiunea finală a numărului, adică în ce vrem să-l încadram - într-un octet, în doi octeți, în patru. Cea mai semnificativă cifră a unui număr înseamnă semnul. Dacă există 0, atunci numărul este pozitiv, dacă 1, atunci este negativ. În stânga, numărul este completat cu o cifră semn. Nu luăm în considerare numerele fără semn, ele sunt întotdeauna pozitive, iar bitul cel mai semnificativ din ele este folosit ca informație.

Pentru a converti un număr negativ în complement binar, trebuie să convertiți un număr pozitiv în binar, apoi schimbați zerourile în unu și cele în zerouri. Apoi adăugați 1 la rezultat.

Deci, să convertim numărul -79 în sistemul binar. Numărul ne va lua un octet.

Convertim 79 în sistemul binar, 79 = 1001111. Adăugăm zerouri în stânga la dimensiunea octetului, 8 biți, obținem 01001111. Schimbăm 1 la 0 și 0 la 1. Obținem 10110000. Adăugăm 1 la rezultat, obținem răspunsul 10110001. Pe parcurs, răspundem la întrebarea Examenului de stat unificat „câte unități sunt în reprezentarea binară a numărului -79?” Raspunsul este 4.

Adăugarea lui 1 la inversul unui număr elimină diferența dintre reprezentările +0 = 00000000 și -0 = 11111111. În codul de complement a doi vor fi scrise la fel ca 00000000.

Conversia numerelor fracționale

Numerele fracționale sunt convertite în modul invers al împărțirii numerelor întregi la bază, la care ne-am uitat chiar de la început. Adică, folosind înmulțirea secvențială cu o nouă bază cu colecția de părți întregi. Părțile întregi obținute în timpul înmulțirii sunt colectate, dar nu participă la următoarele operații. Se înmulțesc doar fracțiile. Dacă numărul inițial este mai mare decât 1, atunci părțile întregi și fracționale sunt translatate separat și apoi lipite împreună.

Să transformăm numărul 0,6752 în sistemul binar.

0 ,6752
*2
1 ,3504
*2
0 ,7008
*2
1 ,4016
*2
0 ,8032
*2
1 ,6064
*2
1 ,2128

Procesul poate fi continuat pentru o lungă perioadă de timp până când obținem toate zerourile din partea fracțională sau se obține precizia necesară. Să ne oprim la al 6-lea semn deocamdată.

Se dovedește că 0,6752 = 0,101011.

Dacă numărul a fost 5,6752, atunci în binar va fi 101,101011.

Acțiune