Od ternarnog do decimalnog online. Kako pretvoriti iz binarnog u decimalni

Pretvaranje brojeva iz jednog brojevnog sistema u drugi važan je dio mašinske aritmetike. Razmotrimo osnovna pravila prevođenja.

1. Da biste binarni broj pretvorili u decimalni, potrebno ga je napisati u obliku polinoma, koji se sastoji od proizvoda cifara broja i odgovarajućeg stepena 2, i izračunati ga prema pravilima decimalna aritmetika:

Prilikom prevođenja zgodno je koristiti tabelu dvojaka:

Tabela 4. Potencije broja 2

n (stepen)

Primjer.

2. Za prevod oktalni broj u decimalnom obliku potrebno ga je napisati u obliku polinoma, koji se sastoji od proizvoda cifara broja i odgovarajućeg stepena broja 8, i izračunati ga prema pravilima decimalne aritmetike:

Prilikom prevođenja zgodno je koristiti tablicu potencija osam:

Tabela 5. Potencije broja 8

n (stepen)

Primjer. Pretvorite broj u decimalni brojevni sistem.

3. Da bi se heksadecimalni broj pretvorio u decimalni, potrebno ga je zapisati u obliku polinoma koji se sastoji od proizvoda cifara broja i odgovarajućeg stepena broja 16 i izračunati ga prema pravila decimalne aritmetike:

Prilikom prevođenja, zgodan je za korištenje blitz snaga broja 16:

Tabela 6. Potencije broja 16

n (stepen)

Primjer. Pretvorite broj u decimalni brojevni sistem.

4. Da bi se decimalni broj pretvorio u binarni sistem, on se mora uzastopno podijeliti sa 2 dok ne ostane ostatak manji od ili jednak 1. Broj u binarnom sistemu se zapiše kao niz rezultata posljednjeg dijeljenja i ostataka podjela obrnutim redoslijedom.

Primjer. Pretvorite broj u binarni sistem brojeva.

5. Da bi se decimalni broj pretvorio u oktalni sistem, on se mora uzastopno podijeliti sa 8 dok ne ostane ostatak manji od ili jednak 7. Broj u oktalnom sistemu je zapisan kao niz cifara posljednjeg rezultata dijeljenja ostatak podjele obrnutim redoslijedom.

Primjer. Pretvorite broj u oktalni brojevni sistem.

6. Da bi se decimalni broj pretvorio u heksadecimalni sistem, on se mora uzastopno podijeliti sa 16 dok ne bude ostatak manji ili jednak 15. Broj u heksadecimalnom sistemu zapisuje se kao niz cifara posljednjeg rezultata dijeljenja i ostatke od dijeljenja obrnutim redoslijedom.

Primjer. Pretvorite broj u heksadecimalni brojevni sistem.

Napomena 1

Ako želite da konvertujete broj iz jednog brojevnog sistema u drugi, onda je zgodnije da ga prvo konvertujete u decimalni brojevni sistem, a tek onda iz decimalnog brojevnog sistema u bilo koji drugi brojevni sistem.

Pravila za pretvaranje brojeva iz bilo kojeg brojevnog sistema u decimalni

IN kompjuterska tehnologija, koristeći mašinsku aritmetiku, važnu ulogu igra konverzija brojeva iz jednog brojevnog sistema u drugi. U nastavku dajemo osnovna pravila za takve transformacije (prevode).

    Kada pretvarate binarni broj u decimalni broj, trebate predstaviti binarni broj kao polinom, čiji je svaki element predstavljen kao proizvod cifre broja i odgovarajuće snage osnovnog broja, u ovom slučaju $2$, a zatim morate izračunati polinom koristeći pravila decimalne aritmetike:

    $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$

Slika 1. Tabela 1

Primjer 1

Pretvorite broj $11110101_2$ u decimalni brojevni sistem.

Rješenje. Koristeći datu tablicu $1$ potencija baze $2$, broj predstavljamo kao 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 = 4 + 128 + + 0 + 4 + 0 + 1 = 245_(10)$

    Da biste broj iz oktalnog brojevnog sistema pretvorili u decimalni brojevni sistem, potrebno ga je predstaviti kao polinom, čiji je svaki element predstavljen kao proizvod cifre broja i odgovarajuće snage osnovnog broja, u ovom slučaju $8$, a zatim morate izračunati polinom prema pravilima decimalne aritmetike:

    $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$

Slika 2. Tabela 2

Primjer 2

Pretvorite broj $75013_8$ u decimalni brojevni sistem.

Rješenje. Koristeći datu tablicu $2$ potencija baze $8$, predstavljamo broj kao 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)$

    Da biste broj pretvorili iz heksadecimalnog u decimalni, trebate ga predstaviti kao polinom, čiji je svaki element predstavljen kao proizvod cifre broja i odgovarajuće snage osnovnog broja, u ovom slučaju $16$, a zatim morate izračunati polinom prema pravilima decimalne aritmetike:

    $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$

Slika 3. Tabela 3

Primjer 3

Pretvorite broj $FFA2_(16)$ u decimalni brojevni sistem.

Rješenje. Koristeći datu tablicu $3$ potencija baze $8$, broj predstavljamo kao 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)$

Pravila za pretvaranje brojeva iz decimalnog brojevnog sistema u drugi

  • Za pretvaranje broja iz decimalni sistem Kada se računa u binarno, mora se uzastopno podijeliti sa $2$ dok ne bude ostatak manji ili jednak $1$. Broj u binarnom sistemu predstavljen je kao niz posljednjeg rezultata dijeljenja i ostataka od dijeljenja obrnutim redoslijedom.

Primjer 4

Pretvorite broj $22_(10)$ u binarni sistem brojeva.

Rješenje:

Slika 4.

$22_{10} = 10110_2$

  • Da biste broj iz decimalnog brojevnog sistema pretvorili u oktalni, on se mora uzastopno podijeliti sa $8$ dok ne bude ostatak manji ili jednak $7$. Broj u oktalnom brojevnom sistemu predstavljen je kao niz cifara posljednjeg rezultata dijeljenja i ostataka iz dijeljenja obrnutim redoslijedom.

Primjer 5

Pretvorite broj $571_(10)$ u oktalni brojevni sistem.

Rješenje:

Slika 5.

$571_{10} = 1073_8$

  • Da biste konvertovali broj iz decimalnog sistema brojeva u heksadecimalni sistem, on se mora sukcesivno podeliti sa 16$ sve dok ne bude ostatak manji ili jednak 15$. Broj u heksadecimalnom sistemu predstavljen je kao niz cifara rezultata posljednjeg dijeljenja i ostatka dijeljenja obrnutim redoslijedom.

Primjer 6

Pretvorite broj $7467_(10)$ u heksadecimalni brojni sistem.

Rješenje:

Slika 6.

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

    Da bi se pravi razlomak iz decimalnog brojevnog sistema pretvorio u nedekadski brojni sistem, potrebno je razlomački dio broja koji se pretvara uzastopno pomnožiti sa osnovom sistema u koji ga treba pretvoriti. Frakcija u novi sistem biće predstavljeni u vidu celih delova radova, počev od prvog.

    Na primjer: $0.3125_((10))$ u oktalnom brojevnom sistemu će izgledati kao $0.24_((8))$.

    U ovom slučaju možete naići na problem kada konačni decimalni razlomak može odgovarati beskonačnom (periodičnom) razlomku u nedecimalnom brojevnom sistemu. U ovom slučaju, broj cifara u razlomku predstavljenom u novom sistemu zavisiće od zahtevane tačnosti. Također treba napomenuti da cijeli brojevi ostaju cijeli brojevi, a pravi razlomci ostaju razlomci u bilo kojem brojevnom sistemu.

Pravila za pretvaranje brojeva iz binarnog brojevnog sistema u drugi

  • Za pretvaranje broja iz binarni sistem numerisanje u oktalno, mora se podijeliti na trozvuke (trojke cifara), počevši od najmanje značajnog broja, ako je potrebno, dodajući nule vodećoj trozvuci, a zatim zamijeniti svaku trozvuku odgovarajućom oktalnom znamenkom prema Tablici 4.

Slika 7. Tabela 4

Primjer 7

Pretvorite broj $1001011_2$ u oktalni brojevni sistem.

Rješenje. Koristeći tabelu 4, pretvaramo broj iz binarnog brojevnog sistema u oktalni:

$001 001 011_2 = 113_8$

  • Da biste broj iz binarnog brojevnog sistema pretvorili u heksadecimalni, treba ga podijeliti na tetrade (četiri znamenke), počevši od najmanje značajnog broja, ako je potrebno, dodajući nule najznačajnijoj tetradi, a zatim zamijeniti svaku tetradu odgovarajućom oktalnom znamenkom prema tabeli 4.

Da biste brzo pretvorili brojeve iz decimalnog sistema brojeva u binarni sistem, morate dobro poznavati brojeve „2 na stepen“. Na primjer, 2 10 =1024, itd. Ovo će vam omogućiti da neke primjere prijevoda riješite doslovno za nekoliko sekundi. Jedan od ovih zadataka je Problem A1 iz USE demo 2012. Možete, naravno, potrajati dugo i zamorno da podijelite broj sa “2”. Ali bolje je odlučiti drugačije, štedeći dragocjeno vrijeme na ispitu.

Metoda je vrlo jednostavna. Njegova suština je sledeća: Ako je broj koji treba pretvoriti iz decimalnog sistema jednak broju "2 na stepen", onda ovaj broj u binarnom sistemu sadrži broj nula jednak stepenu. Dodajemo "1" ispred ovih nula.

  • Pretvorimo broj 2 iz decimalnog sistema. 2=2 1 . Dakle, u binarnom sistemu broj sadrži 1 nulu. Stavljamo "1" ispred i dobijamo 10 2.
  • Pretvorimo 4 iz decimalnog sistema. 4=2 2 . Dakle, u binarnom sistemu broj sadrži 2 nule. Stavimo "1" ispred i dobijemo 100 2.
  • Pretvorimo 8 iz decimalnog sistema. 8=2 3 . Dakle, u binarnom sistemu broj sadrži 3 nule. Stavimo "1" ispred i dobijemo 1000 2.


Slično za ostale brojeve "2 na potenciju".

Ako je broj koji treba pretvoriti manji od broja "2 na stepen" za 1, tada se u binarnom sistemu ovaj broj sastoji samo od jedinica čiji je broj jednak stepenu.

  • Pretvorimo 3 iz decimalnog sistema. 3=2 2 -1. Dakle, u binarnom sistemu broj sadrži 2 jedinice. Dobijamo 112.
  • Pretvorimo 7 iz decimalnog sistema. 7=2 3 -1. Dakle, u binarnom sistemu broj sadrži 3 jedinice. Dobijamo 111 2.

Na slici kvadrati označavaju binarni prikaz broja, a ružičasta boja na lijevoj strani označava decimalni prikaz.


Prijevod je sličan za druge brojeve "2 na potenciju-1".

Jasno je da se prevođenje brojeva od 0 do 8 može obaviti brzo ili dijeljenjem, ili jednostavno znati napamet njihov prikaz u binarnom sistemu. Naveo sam ove primjere kako biste razumjeli princip ovu metodu i koristio ga za prevođenje "impresivnijih brojeva", na primjer, za prevođenje brojeva 127,128, 255, 256, 511, 512, itd.

Na takve probleme možete naići kada trebate pretvoriti broj koji nije jednak broju "2 na stepen", ali mu je blizu. Može biti veći ili manji od 2 na stepen. Razlika između prevedenog broja i broja "2 na potenciju" trebala bi biti mala. Na primjer, do 3. Reprezentacija brojeva od 0 do 3 u binarnom sistemu samo treba biti poznata bez translacije.

Ako je broj veći od , tada ga rješavamo ovako:

Prvo pretvaramo broj “2 na potenciju” u binarni sistem. I onda tome dodamo razliku između broja "2 na potenciju" i broja koji se prevodi.

Na primjer, pretvorimo 19 iz decimalnog sistema. Veći je od broja "2 na stepen" za 3.

16=2 4 . 16 10 =10000 2 .

3 10 =11 2 .

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

Ako je broj manji od broja "2 na potenciju", tada je prikladnije koristiti broj "2 na potenciju-1". Rešavamo to ovako:

Prvo pretvaramo broj “2 na stepen-1” u binarni sistem. A onda od njega oduzimamo razliku između broja "2 na stepen od 1" i broja koji se prevodi.

Na primjer, pretvorimo 29 iz decimalnog sistema. Veći je od broja “2 na stepen-1” za 2. 29=31-2.

31 10 =11111 2 .

2 10 =10 2 .

29 10 =11111 2 -10 2 =11101 2

Ako je razlika između broja koji se prevodi i broja "2 na potenciju" veća od tri, tada možete razbiti broj na njegove komponente, pretvoriti svaki dio u binarni sistem i dodati.

Na primjer, pretvorite broj 528 iz decimalnog sistema. 528=512+16. Mi prevodimo 512 i 16 odvojeno.
512=2 9 . 512 10 =1000000000 2 .
16=2 4 . 16 10 =10000 2 .
Sada ga dodajmo u kolonu:

Oni koji polažu Jedinstveni državni ispit i još mnogo toga...

Čudno je da na časovima informatike u školama učenicima obično pokazuju najsloženiji i najnezgodniji način pretvaranja brojeva iz jednog sistema u drugi. Ova metoda se sastoji od sekvencijalnog dijeljenja originalnog broja bazom i prikupljanja ostataka od dijeljenja obrnutim redoslijedom.

Na primjer, trebate pretvoriti broj 810 10 u binarni:

Rezultat pišemo obrnutim redoslijedom odozdo prema gore. Ispada 81010 = 11001010102

Ako trebate pretvoriti prilično velike brojeve u binarni sistem, tada ljestve podjele poprimaju veličinu višespratnice. I kako sakupiti sve jedinice i nule i ne propustiti nijednu?

IN Program Jedinstvenog državnog ispita u računarstvu uključuje nekoliko zadataka vezanih za prevođenje brojeva iz jednog sistema u drugi. Tipično, ovo je konverzija između oktalnog i heksadecimalnog sistema i binarnog. To su sekcije A1, B11. Ali postoje i problemi sa drugim brojevnim sistemima, kao što je u odeljku B7.

Za početak, prisjetimo se dvije tabele koje bi bilo dobro znati napamet onima koji za buduću profesiju izaberu informatiku.

Tabela potencija broja 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

Lako se dobija množenjem prethodnog broja sa 2. Dakle, ako se ne sjećate svih ovih brojeva, ostatak nije teško dobiti u umu od onih kojih se sjećate.

Table binarni brojevi od 0 do 15 sa heksadecimalnim prikazom:

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

Vrijednosti koje nedostaju je također lako izračunati dodavanjem 1 poznatim vrijednostima.

Cjelobrojna konverzija

Dakle, počnimo sa direktnim pretvaranjem u binarni sistem. Uzmimo isti broj 810 10. Ovaj broj trebamo rastaviti na pojmove jednake stepenu dvojke.

  1. Tražimo snagu dva najbliže 810, a ne prekoračimo je. Ovo je 29 = 512.
  2. Oduzmite 512 od 810, dobijamo 298.
  3. Ponavljajte korake 1 i 2 dok ne prestanu 1 ili 0.
  4. Dobili smo ga ovako: 810 = 512 + 256 + 32 + 8 + 2 = 2 9 + 2 8 + 2 5 + 2 3 + 2 1.
Zatim postoje dvije metode, možete koristiti bilo koji od njih. Kako je lako vidjeti da je u bilo kojem brojevnom sistemu njegova baza uvijek 10. Kvadrat baze uvijek će biti 100, kocka 1000. To jest, stepen baze brojevnog sistema je 1 (jedan), i iza njega ima onoliko nula koliko je stepen.

Metoda 1: Rasporedite 1 prema rangu indikatora pojmova. U našem primjeru, to su 9, 8, 5, 3 i 1. Preostala mjesta će sadržavati nule. Dakle, dobili smo binarni prikaz broja 810 10 = 1100101010 2. Jedinice se postavljaju na 9., 8., 5., 3. i 1. mjesta, računajući s desna na lijevo od nule.

Metoda 2: Hajde da zapišemo članove kao stepene dva jedan ispod drugog, počevši od najveće.

810 =

Sada hajde da dodamo ove korake zajedno, kao što je savijanje lepeze: 1100101010.

To je sve. U isto vrijeme, problem "koliko jedinica ima u binarnom zapisu broja 810" je također jednostavno riješen.

Odgovor je onoliko koliko ima pojmova (potencija dvojke) u ovoj reprezentaciji. 810 ih ima 5.

Sada je primjer jednostavniji.

Pretvorimo broj 63 u 5-redni brojevni sistem. Najbliži stepen od 5 do 63 je 25 (kvadrat 5). Kocka (125) će već biti puno. To jest, 63 leži između kvadrata od 5 i kocke. Zatim ćemo odabrati koeficijent za 5 2. Ovo je 2.

Dobijamo 63 10 = 50 + 13 = 50 + 10 + 3 = 2 * 5 2 + 2 * 5 + 3 = 223 5.

I, konačno, vrlo laki prijevodi između 8 i heksadecimalnog sistema. Pošto je njihova osnova stepen dvojke, prevođenje se vrši automatski, jednostavnom zamjenom brojeva njihovim binarnim prikazom. Za oktalni sistem, svaka cifra se zamjenjuje sa tri binarne cifre, a za heksadecimalni sistem sa četiri. U ovom slučaju, sve vodeće nule su potrebne, osim najznačajnije znamenke.

Pretvorimo broj 547 8 u binarni.

547 8 = 101 100 111
5 4 7

Još jedan, na primjer 7D6A 16.

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

Pretvorimo broj 7368 u heksadecimalni sistem Najprije napišemo brojeve u trojkama, a zatim ih podijelimo na četvorke od kraja: 736 8 = 111 011 110 = 1 1101 1110 = 1DE 16. Pretvorimo broj C25 16 u oktalni sistem. Najprije zapisujemo brojeve po četiri, a zatim ih dijelimo na tri od kraja: C25 16 = 1100 0010 0101 = 110 000 100 101 = 6045 8. Pogledajmo sada pretvaranje u decimalu. Nije teško, glavna stvar je da ne napravite greške u proračunima. Proširujemo broj u polinom sa potencijama baze i koeficijentima za njih. Zatim sve množimo i dodajemo. E68 16 = 14 * 16 2 + 6 * 16 + 8 = 3688. 732 8 = 7 * 8 2 + 3*8 + 2 = 474 .

Pretvaranje negativnih brojeva

Ovdje morate uzeti u obzir da će broj biti predstavljen u dodatni kod. Da biste broj pretvorili u dodatni kod, morate znati konačnu veličinu broja, odnosno u šta želimo da ga uklopimo - u bajt, u dva bajta, u četiri. Najznačajnija cifra broja označava znak. Ako postoji 0, onda je broj pozitivan, ako je 1, onda je negativan. Na lijevoj strani, broj je dopunjen znakom. Ne uzimamo u obzir neoznačene brojeve, oni su uvijek pozitivni, a najvažniji bit u njima se koristi kao informacija.

Da biste negativan broj pretvorili u binarni komplement, trebate konvertirati pozitivan broj u binarni, zatim promijeniti nule u jedinice, a one u nule. Zatim dodajte 1 rezultatu.

Dakle, pretvorimo broj -79 u binarni sistem. Broj će nam uzeti jedan bajt.

Konvertujemo 79 u binarni sistem, 79 = 1001111. Dodamo nule sa leve strane na veličinu bajta, 8 bita, dobijemo 01001111. Mijenjamo 1 u 0 i 0 u 1. Dobijamo 10110000. Dodamo 1 u rezultat, dobijamo odgovor 10110001. Usput, odgovaramo na pitanje Jedinstvenog državnog ispita "koliko jedinica ima binarni prikaz broja -79?" Odgovor je 4.

Dodavanjem 1 inverznom broju eliminiše se razlika između reprezentacija +0 = 00000000 i -0 = 11111111. U kodu komplementa dva biće napisane isto kao 00000000.

Pretvaranje razlomaka

Razlomci se pretvaraju na obrnuti način dijeljenja cijelih brojeva sa osnovom, što smo pogledali na samom početku. Odnosno, korištenjem sekvencijalnog množenja novom bazom sa prikupljanjem cijelih dijelova. Celobrojni delovi dobijeni tokom množenja se prikupljaju, ali ne učestvuju u sledećim operacijama. Množe se samo razlomci. Ako je originalni broj veći od 1, tada se cijeli broj i razlomak prevode odvojeno i zatim lijepe zajedno.

Pretvorimo broj 0,6752 u binarni sistem.

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

Proces se može nastaviti dugo dok ne dobijemo sve nule u razlomku ili dok se ne postigne potrebna tačnost. Zaustavimo se za sada na 6. znaku.

Ispada 0,6752 = 0,101011.

Ako je broj bio 5,6752, onda će u binarnom obliku biti 101,101011.

Dijeli