Conversia numerelor dintr-un sistem numeric în. Conversia fracțiilor zecimale regulate în orice alt sistem numeric. Conversia unei părți întregi în sistemul numeric zecimal

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țirea în ordine inversă.

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

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

Dacă trebuie să convertiți la sistemul binar, destul numere mari, apoi 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 de numere, 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. Așadar, dacă nu vă amintiți toate aceste numere, nu este greu să obțineți restul în minte din cele pe care le amintiți.

Tabel de 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 O 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 sunt 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 este. În același timp, problema „câte unități sunt în notația binară a numărului 810?” este de asemenea rezolvată.

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 O

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 și 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 dorim 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 considerăm numerele nesemnate, ele sunt întotdeauna pozitive, iar bitul cel mai semnificativ din ele este folosit ca informație.

Pentru traducere număr negativîn codul de complement al binar trebuie să convertiți un număr pozitiv în binar, apoi să schimbați zerourile în unu și cele cu 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 prin înmulțire sunt colectate, dar nu participă urmatoarele operatii. 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.

Să ne uităm la una dintre ele cele mai importante subiecteîn informatică - . ÎN programa școlară este dezvăluit mai degrabă „modest”, cel mai probabil din cauza lipsei de ore alocate acestuia. Cunoștințe pe această temă, în special pe traducerea sistemelor numerice, sunt condiție prealabilă pentru promovarea cu succes a Examenului de stat unificat și admiterea la universități la facultățile relevante. De mai jos în detaliu concepte precum sisteme de numere poziționale și nepoziționale, sunt date exemple ale acestor sisteme numerice, reguli pentru traducerea numerelor zecimale întregi, corecte zecimaleși numere zecimale mixte în orice alt sistem de numere, conversie de numere din orice sistem de numere în zecimal, conversie din sisteme de numere octale și hexazecimale în sistem de numere binar. La examene în cantitati mari Sunt probleme pe această temă. Capacitatea de a le rezolva este una dintre cerințele solicitanților. În curând: pentru fiecare subiect al secțiunii, pe lângă cele detaliate material teoretic, aproape toată lumea va fi reprezentată opțiuni posibile sarcini Pentru auto-studiu. În plus, veți avea posibilitatea de a descărca cele gata făcute dintr-un serviciu de găzduire de fișiere complet gratuit. soluții detaliate la aceste sarcini, ilustrând diverse moduri obținerea răspunsului corect.

sisteme de numere poziționale.

Sisteme numerice non-poziționale- sisteme de numere în care valoarea cantitativă a unei cifre nu depinde de localizarea acesteia în număr.

Sistemele numerice non-poziționale includ, de exemplu, Roman, unde în loc de numere - litere latine.

eu 1 (unu)
V 5 (cinci)
X 10 (zece)
L 50 (cincizeci)
C 100 (o sută)
D 500 (cinci sute)
M 1000 (mii)

Aici litera V reprezintă 5, indiferent de locația sa. Cu toate acestea, merită menționat faptul că, deși sistemul numeric roman este un exemplu clasic sistem non-poziţional notația nu este complet non-pozițională, deoarece Din acesta se scade numărul mai mic din fața celui mai mare:

IL 49 (50-1=49)
VI 6 (5+1=6)
XXI 21 (10+10+1=21)
MI 1001 (1000+1=1001)

sisteme de numere poziționale.

Sisteme numerice poziționale- sisteme de numere în care valoarea cantitativă a unei cifre depinde de localizarea acesteia în număr.

De exemplu, dacă vorbim despre sistemul numeric zecimal, atunci în numărul 700 numărul 7 înseamnă „șapte sute”, dar același număr din numărul 71 înseamnă „șapte zeci”, iar în numărul 7020 - „șapte mii” .

Fiecare sistem de numere poziționale are propriile sale baza. Se alege baza număr natural, mai mare sau egal cu doi. Este egal cu numărul de cifre utilizate într-un anumit sistem de numere.

    De exemplu:
  • Binar- sistem de numere pozițional cu baza 2.
  • Cuaternar- sistem de numere pozițional cu baza 4.
  • De cinci ori- sistem de numere pozițional cu baza 5.
  • Octal- sistem de numere pozițional cu baza 8.
  • hexazecimal- sistem de numere pozițional cu baza 16.

Pentru a rezolva cu succes probleme la tema „Sisteme numerice”, elevul trebuie să cunoască pe de rost corespondența numerelor binare, zecimale, octale și hexazecimale până la 16 10:

10 s/s 2 s/s 8 s/s 16 s/s
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 O
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10

Este util să știm cum se obțin numerele în aceste sisteme numerice. Puteți ghici că în octal, hexazecimal, ternar și altele sisteme poziționale socoteala totul se întâmplă în același mod ca sistemul zecimal cu care suntem obișnuiți:

Se adaugă unul la număr și se obține un nou număr. Dacă locul unităților devine egal cu baza sistemului numeric, creștem numărul zecilor cu 1 etc.

Această „tranziție a unuia” este ceea ce îi sperie pe majoritatea studenților. De fapt, totul este destul de simplu. Tranziția are loc dacă cifra unităților devine egală cu baza numerelor, creștem numărul zecilor cu 1. Mulți, amintindu-ne de vechiul bun sistem zecimal se confundă instantaneu în cifrele din această tranziție, deoarece zecimale și, de exemplu, zecile binare sunt lucruri diferite.

De aici, studenții cu resurse își dezvoltă „propriile metode” (în mod surprinzător... lucrând) atunci când completează, de exemplu, tabele de adevăr, primele coloane (valori variabile) ale căror, de fapt, sunt umplute cu numere binare în ordine crescătoare.

De exemplu, să ne uităm la introducerea numerelor sistem octal: Adăugăm 1 la primul număr (0), obținem 1. Apoi adăugăm 1 la 1, obținem 2 etc. la 7. Dacă adunăm unu la 7, obținem un număr egal cu baza sistemului numeric, adică. 8. Apoi trebuie să măriți locul zecilor cu unul (obținem zece octal - 10). Urmează, evident, numerele 11, 12, 13, 14, 15, 16, 17, 20, ..., 27, 30, ..., 77, 100, 101...

Reguli pentru conversia de la un sistem numeric la altul.

1 Conversia numerelor zecimale întregi în orice alt sistem de numere.

Numărul trebuie împărțit la noua bază a sistemului de numere. Primul rest al diviziunii este prima cifră minoră a noului număr. Dacă câtul împărțirii este mai mic sau egal cu noua bază, atunci acesta (coeficientul) trebuie împărțit din nou la noua bază. Împărțirea trebuie continuată până când obținem un coeficient mai mic decât noua bază. Aceasta este cea mai mare cifră a noului număr (trebuie să vă amintiți că, de exemplu, în sistemul hexazecimal, după 9 există litere, adică dacă restul este 11, trebuie să îl scrieți ca B).

Exemplu („împărțire după colț”): Să transformăm numărul 173 10 în sistemul numeric octal.


Astfel, 173 10 =255 8

2 Conversia fracțiilor zecimale regulate în orice alt sistem numeric.

Numărul trebuie înmulțit cu noul sistem de numere de bază. Cifra care a devenit parte întreagă este cea mai mare cifră a părții fracționale a noului număr. pentru a obține următoarea cifră, partea fracțională a produsului rezultat trebuie din nou înmulțită cu o nouă bază a sistemului numeric până când are loc tranziția la întreaga parte. Continuăm înmulțirea până la parte fracționată nu devine egal cu zero, sau până când ajungem la precizia specificată în problemă („... calculați cu o precizie de, de exemplu, două zecimale”).

Exemplu: Să transformăm numărul 0,65625 10 în sistemul de numere octale.

1. Numărarea ordinală în diverse sisteme numerice.

ÎN viata moderna folosim sisteme de numere poziționale, adică sisteme în care numărul notat cu o cifră depinde de poziția cifrei în notația numărului. Prin urmare, în viitor vom vorbi doar despre ele, omițând termenul „pozițional”.

Pentru a învăța cum să convertim numerele dintr-un sistem în altul, vom înțelege cum are loc înregistrarea secvențială a numerelor folosind exemplul sistemului zecimal.

Deoarece avem un sistem de numere zecimal, avem 10 simboluri (cifre) pentru a construi numere. Începem să numărăm: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Numerele s-au terminat. Creștem adâncimea de biți a numărului și resetam cifra cea mai puțin semnificativă: 10. Apoi creștem din nou cifra inferioară până când toate cifrele dispar: 11, 12, 13, 14, 15, 16, 17, 18, 19. Noi mărim cifra mare cu 1 și resetam cifra inferioară: 20. Când folosim toate cifrele pentru ambele cifre (obținem numărul 99), creștem din nou capacitatea de cifre a numărului și resetam cifrele existente: 100. Și așa pe.

Să încercăm să facem același lucru în sistemele 2, 3 și 5 (introducem notația pentru al 2-lea sistem, pentru al 3-lea etc.):

0 0 0 0
1 1 1 1
2 10 2 2
3 11 10 3
4 100 11 4
5 101 12 10
6 110 20 11
7 111 21 12
8 1000 22 13
9 1001 100 14
10 1010 101 20
11 1011 102 21
12 1100 110 22
13 1101 111 23
14 1110 112 24
15 1111 120 30

Dacă sistemul numeric are o bază mai mare de 10, atunci va trebui să introducem caractere suplimentare, se obișnuiește să se introducă litere din alfabetul latin. De exemplu, pentru sistemul cu 12 cifre, pe lângă zece cifre, avem nevoie de două litere ( și ):

0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10
11
12 10
13 11
14 12
15 13

2. Conversia din sistemul numeric zecimal în oricare altul.

Pentru a traduce un număr întreg pozitiv număr zecimalîntr-un sistem numeric cu o bază diferită, trebuie să împărțiți acest număr la bază. Împărțiți din nou câtul rezultat la bază și mai departe până când câtul este mai mic decât baza. Ca urmare, notează pe un rând ultimul coeficient și toate resturile, începând de la ultimul.

Exemplul 1. Să convertim numărul zecimal 46 în sistemul numeric binar.

Exemplul 2. Să convertim numărul zecimal 672 în sistemul de numere octale.

Exemplul 3. Să convertim numărul zecimal 934 în sistem hexazecimal Socoteala.

3. Conversie din orice sistem numeric în zecimal.

Pentru a învăța cum să convertiți numerele din orice alt sistem în zecimal, să analizăm notația obișnuită pentru un număr zecimal.
De exemplu, numărul zecimal 325 este de 5 unități, 2 zeci și 3 sute, adică.

Situația este exact aceeași în alte sisteme de numere, doar că vom înmulți nu cu 10, 100 etc., ci cu puterile bazei sistemului de numere. De exemplu, să luăm numărul 1201 în sistem ternar Socoteala. Să numerotăm cifrele de la dreapta la stânga începând de la zero și să ne imaginăm numărul ca suma produselor unei cifre și trei la puterea cifrei numărului:

Aceasta este notația zecimală a numărului nostru, adică

Exemplul 4. Să trecem la sistemul numeric zecimal număr octal 511.

Exemplul 5. Să convertim numărul hexazecimal 1151 în sistemul numeric zecimal.

4. Conversia de la sistemul binar la sistemul cu baza „puterea a doi” (4, 8, 16 etc.).

Pentru a converti un număr binar într-un număr cu o putere de două baze, este necesar să împărțiți secvența binară în grupuri în funcție de numărul de cifre egal cu puterea de la dreapta la stânga și să înlocuiți fiecare grup cu cifra corespunzătoare a noii sistem de numere.

De exemplu, să convertim numărul binar 1100001111010110 în sistemul octal. Pentru a face acest lucru, îl vom împărți în grupuri de 3 caractere începând din dreapta (din ), apoi vom folosi tabelul de corespondență și vom înlocui fiecare grup cu un număr nou:

Am învățat cum să construim un tabel de corespondență la pasul 1.

0 0
1 1
10 2
11 3
100 4
101 5
110 6
111 7

Aceste.

Exemplul 6. Să convertim numărul binar 1100001111010110 în hexazecimal.

0 0
1 1
10 2
11 3
100 4
101 5
110 6
111 7
1000 8
1001 9
1010 O
1011 B
1100 C
1101 D
1110 E
1111 F

5. Conversia dintr-un sistem cu „puterea a doi” de bază (4, 8, 16 etc.) în binar.

Această traducere este similară cu cea anterioară, realizată în reversul: Înlocuim fiecare cifră cu un grup de cifre binare din tabelul de căutare.

Exemplul 7. Să convertim numărul hexazecimal C3A6 în sistemul de numere binar.

Pentru a face acest lucru, înlocuiți fiecare cifră a numărului cu un grup de 4 cifre (din moment ce ) din tabelul de corespondență, completând grupul cu zerouri la început, dacă este necesar:



Obiectivele lecției:

  • repeta materialul studiat pe tema sistemului de numere;
  • învață să convertești un număr din sistemul zecimal în orice alt sistem numeric pozițional și invers;
  • stăpânește principiile conversiei numerelor dintr-un sistem în altul;
  • dezvolta gândirea logică.

Progresul lecției

La începutul lecției, o scurtă trecere în revistă și verificare a temelor.

În ce formă sunt prezentate informațiile numerice în memoria computerului?

Pentru ce sunt folosite sistemele numerice?

Ce tipuri de sisteme numerice cunoașteți? Dați propriile exemple.

Cum diferă sistemele poziționale de sistemele nepoziționale?

Scopul lecției noastre este să învățăm cum să convertim un număr din sistemul zecimal în orice alt sistem numeric pozițional și invers. Dar mai întâi ne vom uita la cum poți

reprezintă orice număr întreg nenegativ:

În sistemele poziționale, valoarea scrierii unui întreg este determinată de următoarea regulă: fie a n a n-1 a n-2 …a 1 a 0 scrierea numărului A, iar i sunt cifre, atunci

unde p este un număr întreg mai mare decât 1, care se numește baza sistemului numeric

Pentru ca, pentru un p dat, orice număr întreg nenegativ ar putea fi scris după formula (1) și, în plus, într-un mod unic, valori numerice numere diferite trebuie să fie numere întregi distincte aparținând intervalului de la 0 la p-1.

1) Sistemul zecimal

numere: 0,1,2,3,4,5,6,7,8,9

numărul 5735 = 5 10 3 +7 10 2 +3 10 1 +8 10 0

2) Sistemul ternar

numere: 0,1,2

numărul 201 3 = 2·3 2 +0·3 1 +1·3 0

Notă: indicele dintr-un număr indică baza sistemului numeric în care este scris numărul. Pentru sistemul numeric zecimal, indexul nu trebuie scris.

Reprezentarea numerelor negative și fracționale:

În toate sistemele poziționale, semnul „–” este folosit pentru a scrie numere negative, la fel ca în sistemul zecimal. O virgulă este folosită pentru a separa partea întreagă a unui număr de partea fracțională. Valoarea intrării a n a n-1 a n-2 …a 1 a 0 , a -1 a -2 …a m-2 a m-1 a m a numărului A este determinată de formula, care este o generalizare a formula (1):

75,6 = 7·10 1 +5·10 0 +6·10 –1

–2,314 5 = –(2 5 0 +3 5 –1 +1 5 –2 +4 5 –3)

Conversia numerelor dintr-un sistem de numere arbitrar în zecimal:

Trebuie înțeles că atunci când traduceți un număr dintr-un sistem numeric în altul, valoarea cantitativă a numărului nu se modifică, ci se schimbă doar forma de scriere a numărului, la fel ca atunci când traduceți numele unui număr, de exemplu, din rusă în engleză.

Conversia numerelor dintr-un sistem de numere arbitrar în zecimal se realizează prin calcul direct folosind formula (1) pentru numere întregi și formula (2) pentru fracții.

Conversia numerelor din sistemul numeric zecimal într-un sistem numeric arbitrar.

Convertirea unui număr din sistemul zecimal într-un sistem cu baza p înseamnă găsirea coeficienților în formula (2). Uneori este ușor de făcut selecție simplă. De exemplu, să presupunem că trebuie să convertiți numărul 23,5 în octal. Este ușor de observat că 23,5 = 16+7+0,5 = 2·8+7+4/8 = 2·8 1 +7·8 0 +4·8 –1 =27,48. Este clar că răspunsul nu este întotdeauna atât de evident. ÎN caz general se folosește o metodă de conversie separată a părților întregi și fracționale ale unui număr.

Pentru a converti numerele întregi, se folosește următorul algoritm (obținut pe baza formulei (1)):

1. Aflați câtul și restul la împărțirea unui număr la p. Restul va fi următoarea cifră ai (j=0,1,2 ...) a numărului introdus în sistem nou Socoteala.

2. Dacă câtul este egal cu zero, atunci translația numărului este finalizată, în caz contrar aplicăm punctul 1 câtului.

Notă 1. Cifrele ai din notația numerică sunt numerotate de la dreapta la stânga.

Nota 2. Dacă p>10, atunci este necesar să se introducă notație pentru numere cu valori numerice mai mari sau egale cu 10.

Convertiți numărul 165 în sistemul numeric septal.

165:7 = 23 (restul 4) => a 0 = 4

23:7 = 3 (restul 2) => a 1 = 2

3:7 = 0 (restul 3) => a 2 = 3

Să notăm rezultatul: a 2 a 1 a 0 , i.e. 3247.

După ce am verificat folosind formula (1), ne vom asigura că traducerea este corectă:

3247=3·7 2 +2·7 1 +4·7 0 =3·49+2·7+4 = 147+14+4 = 165.

Pentru a converti părți fracționale ale numerelor, se folosește un algoritm obținut pe baza formulei (2):

1. Înmulțiți partea fracționară a numărului cu p.

2. Partea întreagă a rezultatului va fi următoarea cifră am (m = –1, –2, –3 ...) de scriere a numărului în noul sistem de numere. Dacă partea fracțională a rezultatului este zero, atunci translația numărului este finalizată, altfel îi aplicăm pasul 1.

Notă 1. Cifrele a m din notația numerică sunt aranjate de la stânga la dreapta în ordine crescătoare valoare absolută m.

Nota 2. De obicei, numărul de cifre fracționale în noua intrare numărul este limitat în prealabil. Acest lucru vă permite să efectuați o traducere aproximativă cu o precizie dată. În cazul fracțiilor infinite, o astfel de restricție asigură caracterul finit al algoritmului.

Convertiți numărul 0,625 în sistemul numeric binar.

0,625 2 = 1,25 ( întreaga parte 1) => a -1 =1

0,25 2 = 0,5 (partea întreagă 0) => a- 2 = 0

0,5 2 = 1,00 (partea întreagă 1) => a- 3 = 1

Deci 0,62510 = 0,1012

După ce am verificat folosind formula (2), ne vom asigura că traducerea este corectă:

0,1012=1·2 -1 +0·2- 2 +1·2 -3 =1/2+1/8 = 0,5+0,125 = 0,625.

Convertiți numărul 0,165 în sistemul numeric cuaternar, limitându-l la patru cifre cuaternare.

0,165 4 = 0,66 (partea întreagă 0) => a -1 =0

0,66 4 = 2,64 (partea întreagă 2) => a -2 = 2

0,64 4 = 2,56 (partea întreagă 2) => a -3 = 2

0,56 4 = 2,24 (partea întreagă 2) => a -4 = 2

Deci 0,16510" 0,02224

Să facem o traducere inversă pentru a ne asigura că eroarea absolută nu depășește 4–4:

0,02224 = 0·4 -1 +2·4 -2 +2·4 -3 +2·4 -4 = 2/16+2/64+2/256 = 1/8+1/32+1/ 128 = 21/128 = 0,1640625

|0,1640625–0,165| = 0,00094 < 4–4 = 0,00390625

Conversia numerelor dintr-un sistem arbitrar în altul

În acest caz, trebuie mai întâi să convertiți numărul în sistemul zecimal, iar apoi din sistemul zecimal în cel necesar.

O metodă specială este utilizată pentru a converti numere pentru sisteme cu baze multiple.

Fie p și q bazele a două sisteme numerice. Vom numi aceste sisteme sisteme numerice cu baze multiple dacă p = qn sau q = pn, unde n este un număr natural. Deci, de exemplu, sistemele numerice cu bazele 2 și 8 sunt sisteme numerice de bază multiple.

Fie p = qn și trebuie să convertiți un număr dintr-un sistem numeric cu baza q într-un sistem numeric cu baza p. Să împărțim părțile întregi și fracționale ale numărului în grupuri de n cifre scrise secvențial la stânga și la dreapta punctului zecimal. Dacă numărul de cifre din partea întreagă a unui număr nu este un multiplu al lui n, atunci trebuie să adăugați numărul corespunzător de zerouri la stânga. Dacă numărul de cifre din partea fracționară a unui număr nu este un multiplu al lui n, atunci se adaugă zerouri la dreapta. Fiecare astfel de grup de cifre este un număr în sistem vechi numărul va corespunde unei cifre a unui număr din noul sistem de numere.

Să convertim 1100001,111 2 în sistemul numeric cuaternar.

Adăugând zerouri și selectând perechi de numere, obținem 01100001.11102.

Acum să traducem fiecare pereche de cifre separat, folosind secțiunea Traducerea numerelor dintr-un sistem arbitrar în altul.

Deci, 1100001,1112 = 01100001,11102 = 1201,324.

Să presupunem acum că trebuie să transferăm de la un sistem cu o bază mai mare q la un sistem cu o bază mai mică p, i.e. q = pn. În acest caz, o cifră a unui număr din vechiul sistem de numere corespunde cu n cifre ale unui număr din noul sistem de numere.

Exemplu: Să verificăm traducerea anterioară a unui număr.

1201,324 = 1100001,11102=1100001,1112

În sistemul hexazecimal există cifre cu valori numerice 10,11,12, 13,14,15. Pentru a le desemna, utilizați primele șase litere ale alfabetului latin A, B, C, D, E, F.

Iată un tabel cu numere de la 0 la 16, scrise în sisteme numerice cu bazele 10, 2, 8 și 16.

Număr în sistem zecimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
În octal 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20
În binar 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000
În hexazecimal 0 1 2 3 4 5 6 7 8 9 O B C D E F 10

Pentru a scrie cifre hexazecimale, puteți utiliza, de asemenea, litere latine minuscule a-f.

Exemplu: Să transformăm numărul 110101001010101010100.11 2 în sistem numeric hexazecimal.

Să folosim multiplicitatea bazelor sistemelor numerice (16=2 4). Să grupăm numerele cu patru, adăugând numărul necesar de zerouri la stânga și la dreapta

000110101001010101010100,1100 2

și, verificând tabelul, obținem: 1A9554,C 16

Concluzie:

În ce sistem de numere este cel mai bine să scrieți numerele este o chestiune de comoditate și tradiție. Din punct de vedere tehnic, este convenabil să utilizați sistemul binar într-un computer, deoarece folosește doar două cifre 0 și 1 pentru a înregistra un număr, care poate fi reprezentat prin două stări ușor de distins „fără semnal” și „nu există un semnal.”

Dimpotrivă, este incomod pentru o persoană să se ocupe de numere binare din cauza faptului că acestea sunt mai lungi decât numerele zecimale și sunt multe cifre care se repetă în ele. Prin urmare, dacă este necesar, lucrați cu reprezentări automate ale numerelor, utilizați sisteme de numere octale sau hexazecimale. Bazele acestor sisteme sunt puteri întregi de doi și, prin urmare, numerele sunt ușor convertite din aceste sisteme în binar și invers.

Notează temele pentru acasă:

a) Notați data nașterii tuturor membrilor familiei dumneavoastră în diferite sisteme numerice.

b) Convertiți numerele din binar în octal și hexazecimal și apoi verificați rezultatele efectuând conversiile inverse:

a) 1001111110111,011 2;

Când convertiți numere din sistemul numeric zecimal în oricare altul, întotdeauna separat (prin reguli diferite) se translată părțile întregi și fracționale.

Traducerea întregii părți

Pentru a converti un număr dintr-un sistem numeric zecimal în oricare altul, trebuie să efectuați împărțirea întregului numărului inițial la baza sistemului numeric în care doriți să convertiți numărul. În acest caz, restul diviziunii și al coeficientului sunt importante. Coeficientul trebuie împărțit la bază până când rămâne 0. După aceasta, toate resturile trebuie scrise în ordine inversă - acesta va fi numărul în noul sistem de numere.

De exemplu, convertirea numărului 25 din sistemul numeric zecimal în sistemul binar va arăta astfel:

Scriind resturile în ordine inversă, obținem 25 10 =11001 2.

Dacă vă gândiți bine, puteți observa cu ușurință că atunci când convertiți absolut orice număr în sistemul de numere binar, ultimul rest (adică prima cifră din rezultat) va fi întotdeauna egal cu ultimul coeficient, care s-a transformat a fi mai mică decât baza sistemului numeric în care traducem numărul. Prin urmare, diviziunea este adesea oprită înainte ca câtul să devină egal cu zero- în momentul în care particularul devine pur și simplu mai mic decât baza. De exemplu:

Conversia de la sistemul de numere zecimal în orice alt sistem de numere se realizează conform exact aceleași reguli. Iată un exemplu de conversie a 393 10 în sistem de numere hexazecimale:

Scriind resturile în ordine inversă, obținem 393 10 =189 16.

Trebuie să înțelegeți că resturile sunt obținute în sistemul numeric zecimal. La împărțirea la 16, reziduurile pot apărea nu numai de la 0 la 9, ci și reziduuri de la 10 la 15. Fiecare rest este întotdeauna exact o cifră în sistemul numeric în care se face traducerea.

De exemplu, dacă, la conversia în sistemul numeric hexazecimal, ați primit următoarele rămășițe (scrise în ordinea în care ar trebui să fie scrise în număr): 10, 3, 15, 7, atunci în sistemul numeric hexazecimal această secvență de resturile vor corespunde numărului A3F7 16 (unii scriu din greșeală numărul ca 103157 16 - este clar că acesta este un număr complet diferit și că, dacă faci asta, nu se va dovedi că în niciun caz număr hexazecimal numerele de la A la F nu vor apărea).

Traducere fracționată

Când traduceți o parte fracțională, spre deosebire de traducerea unei părți întregi, nu trebuie să împărțiți, ci să înmulțiți cu baza sistemului numeric în care facem conversia. În acest caz, părți întregi sunt aruncate de fiecare dată, iar părțile fracționale sunt înmulțite din nou. Colectând părțile întregi în ordinea în care au fost obținute, obținem partea fracțională a numărului în sistem necesar Socoteala.

O operație de înmulțire dă exact unul semn suplimentarîn sistemul numeric în care se realizează traducerea.

În acest caz, există două condiții pentru finalizarea procesului:

1) ca urmare a următoarei înmulțiri ați primit un zero în partea fracționară. Este clar că oricât de mult ai înmulți acest zero, tot va rămâne zero. Aceasta înseamnă că numărul a fost convertit exact din sistemul numeric zecimal în cel necesar.

2) nu toate numerele pot fi traduse cu acuratețe. În acest caz, este de obicei tradus cu o oarecare acuratețe. În acest caz, ei determină mai întâi câte zecimale vor fi necesare - acesta este de câte ori va trebui efectuată operația de înmulțire.

Iată un exemplu de conversie a numărului 0,39 10 în sistemul de numere binar. Precizie - 8 cifre (in în acest caz, precizia traducerii este aleasă în mod arbitrar):

Dacă scriem toate părțile în ordine directă, obținem 0,39 10 =0,01100011 2 .

Nu este nevoie să scrieți primul zero (barat cu albastru în figură) - deoarece se referă nu la partea fracțională, ci la întreaga parte. Unii oameni scriu din greșeală acest zero după punctul zecimal atunci când scriu rezultatul.

Așa va arăta conversia numărului 0,39 10 în sistemul numeric hexazecimal. Precizie - 8 cifre în acest caz, precizia este din nou aleasă în mod arbitrar:

Dacă scriem toate părțile în ordine directă, obținem 0,39 10 = 0,63D700A3 16.

În același timp, probabil ați observat că părți întregi atunci când sunt înmulțite sunt obținute în sistemul numeric zecimal. Aceste părți întregi obținute la traducerea părții fracționale a unui număr trebuie interpretate exact în același mod ca și resturile la traducerea întregii părți a unui număr. Adică, dacă, atunci când sunt convertite în sistemul numeric hexazecimal, părțile întregi au fost obținute în următoarea ordine: 3, 13, 7, 10, atunci numărul corespunzător va fi egal cu 0,3D7A 16 (și nu 0,313710 16, ca unele scrie uneori eronat).

Conversia numerelor cu părți întregi și fracționale

Pentru a traduce un număr cu un întreg și o parte fracțională, trebuie să traduceți separat partea întregului și partea fracțională separat, apoi scrieți aceste două părți împreună.

De exemplu, 25,39 10 =11001,01100011 2 (translații ale părților întregi și fracționale - vezi mai sus).

Conversia numerelor întregi mici de la zecimal la binar în capul tău

De când lucrezi cu diverse sistemeÎn calcul, mai ales atunci când se dezvoltă programe, de foarte multe ori este nevoie de a traduce numere întregi mici, apoi, în general, are sens să memorezi primele 16 numere (de la 0 la 15).

Dar dacă vă dați seama cât de ușor este să convertiți mental numerele întregi mici de la 0 la 15 din sistemul numeric zecimal în binar, atunci puteți să calculați pur și simplu o parte semnificativă a tabelului în cap de fiecare dată când aveți nevoie de el. Faceți această operațiune de multe ori și, la un moment dat, nu veți putea înțelege dacă ați memorat deja tabelul sau dacă încă calculați.

Deci, pentru a converti un mic întreg pozitiv de la 0 la 15 din zecimal în binar, primul lucru pe care trebuie să-l înțelegeți este că fiecare poziție din număr binar corespunde unei puteri de doi.

În același timp, puterile a doi pentru pozițiile de la 0 la 3 sunt foarte ușor de reținut - acestea sunt numerele 1, 2, 4 și 8:

Și numărul 10 este 2 plus 8: