1 octet în sistem hexazecimal. Tutorial ilustrat despre grafica digitală. Conversii binar-octal și binar-hexazecimal

Originea din Babilonul antic. În India, sistemul funcționează sub formă de numerotare zecimală pozițională folosind zero, pentru indieni acest sistem numerele au fost împrumutate de națiunea arabă, ele, la rândul lor, au fost luate de europeni. În Europa, acest sistem a început să fie numit arab.

Sistem poziționalsocoteala- valoarea tuturor cifrelor depinde de poziția (cifra) acestei cifre în număr.

Exemple, standard sistem zecimal socoteala este sistem pozițional. Să presupunem că ți se dă un număr453 . Număr 4 reprezintă sute și corespunde unui număr400, 5 - număr de zeci și corespunde valorii50 , A 3 - unități și valoare3 . Este ușor de observat că pe măsură ce cifra crește, valoarea crește. Astfel, scriem numărul dat ca o sumă400+50+3=453.

Sistemul numeric hexazecimal.

Sistemul numeric hexazecimal(numere hexazecimale) - sistem de numere pozițional. fundație sistem hexazecimal socoteala este numărul 16.

Când scriem numere în octal obținem expresii destul de compacte, dar în hexazecimal obținem expresii mai compacte.

Primele zece cifre din cele șaisprezece cifre hexazecimale sunt spațiere standard 0 - 9 , următoarele șase cifre sunt exprimate folosind primele litere ale alfabetului latin: A, B, C, D, E, F. Convertiți din hexazecimal în sistem binar si in reversul faceți același proces pentru sistem octal.

Aplicarea sistemului numeric hexazecimal.

Sistemul de numere hexazecimale este destul de bine folosit în calculatoare moderne, de exemplu cu ajutorul acestuia indicați culoarea: #FFFFFF- Culoare alba.

Conversia numerelor dintr-un sistem numeric în altul.

Conversia numerelor din hexazecimal în zecimal.

Pentru a converti un număr hexazecimal în zecimal, trebuie să aduceți numărul dat la forma sumei produselor gradelor bazei sistemului numeric hexazecimal cu cifrele corespunzătoare din cifrele numărului hexazecimal.

De exemplu, traduceți numărul hexazecimal 5A3 la zecimală. Aici 3 numere. Pe baza regulii de mai sus, o aducem la forma sumei de grade cu baza 16:

5A3 16 = 3 16 0 +10 16 1 +5 16 2 = 3 1+10 16+5 256 = 3+160+1280 = 1443 10

Convertiți numere din binar în hexazecimal și invers.

Pentru a converti un număr binar cu mai multe cifre într-un sistem hexazecimal, este necesar să îl împărțiți în tetrade de la dreapta la stânga și să schimbați toate tetradele în cifra hexazecimală corespunzătoare. Pentru a converti un număr din hexazecimal în binar, trebuie să schimbați toate cifrele în tetradele corespunzătoare din tabelul de conversie, pe care îl veți găsi mai jos.

De exemplu:

010110100011 2 = 0101 1010 0011 = 5A3 16

Tabelul de conversie numerică.

Algoritm pentru conversia numerelor dintr-un sistem numeric în altul.

1. Din sistemul numeric zecimal:

  • împărțim numărul la baza sistemului numeric care se traduce;
  • găsiți restul din împărțirea părții întregi a numărului;
  • notează toate resturile divizării în ordine inversă;

2. Din sistemul de numere binar:

  • pentru a converti în sistemul numeric zecimal, găsim suma produselor bazei 2 cu gradul de descărcare corespunzător;
  • pentru a converti un număr în octal, împărțim numărul în triade.

De exemplu, 1000110 = 1000 110 = 1068

  • pentru a converti un număr din binar în hexazecimal, împărțim numărul în grupuri de 4 cifre.

De exemplu, 1000110 = 100 0110 = 4616.

Tabelele de traducere:

SS binar

SS hexazecimal

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

SS binar

Sistemul numeric hexazecimal. primul nostru program.

Pentru a scrie programe în asamblator, trebuie să înțelegeți sistemul numeric hexazecimal. Nu este nimic complicat în ea. Folosim sistemul zecimal în viața noastră. Sunt sigur că o știți cu toții, așa că voi încerca să explic sistemul hexazecimal desenând o analogie cu zecimalul.

Deci, în sistemul zecimal, dacă adăugăm zero la dreapta oricărui număr, atunci acest număr va crește de 10 ori. De exemplu: 1 x 10 = 10; 10 x 10 = 100; 100 x 10 = 1000 etc. În acest sistem, folosim numere de la 0 la 9, adică zece cifre diferite (de fapt, de aceea se numește zecimală).

În sistemul hexazecimal, folosim, respectiv, șaisprezece „cifre”. Am scris în mod special cuvântul „numere” între ghilimele, pentru că folosește mai mult decât numere. Și cum e cu adevărat? Vă explic: de la 0 la 9 numărăm la fel ca în zecimală, dar atunci va fi așa: A, B, C, D, E, F. Numărul F, oricât de greu ar fi număr, va fi egal cu 15 în sistemul zecimal (vezi Tabelul 1).

Numar decimal

Număr hexazecimal

Tabelul 1. Sisteme zecimale și hexazecimale.

Astfel, dacă adăugăm zero la dreapta oricărui număr din sistemul hexazecimal, atunci acest număr va crește în16 o singura data.

Exemplul 1: 1 x 16 = 10; 10 x 16 = 100; 100 x 16 = 1000 etc.

Ați reușit să distingeți hexazecimalul de zecimal în Exemplul 1? Și din acest rând: 10, 12, 45, 64, 12, 8, 19? Poate fi fie hexazecimal, fie zecimal. Pentru a evita confuzia, iar computerul ar putea distinge fără ambiguitate un număr de altul, se obișnuiește în Assembler să pună caracterul h sau H după numărul hexazecimal ( H este prescurtarea pentru engleză. hexazecimal (hexazecimal). Pe scurt, uneori este numit simplu hex ) . Și după zecimală, nu pune nimic. pentru că numerele de la 0 la 9 în ambele sisteme au aceeași semnificație, atunci numerele scrise ca 5 și 5h sunt aceleași.

Acea. Exemplul 1 (vezi mai sus) ar fi mai corect să scriem după cum urmează: 1 x 16 = 10h; 10h x 16 = 100h; 100h x 16 = 1000h. Sau cam așa: 1h x 10h = 10h; 10h x 10h = 100h; 100h x 10h = 1000h.

De ce este necesar sistemul hexazecimal, vom lua în considerare în numerele ulterioare. Si in acest moment pentru programul nostru exemplu, care va fi discutat mai jos, trebuie să știm despre existență numere hexazecimale.

Deci, să rezumam. Sistemul numeric hexazecimal este format din 10 cifre (de la 0 la 9) și 6 litere ale alfabetului latin (A, B, C, D, E, F). Dacă adăugăm zero la dreapta oricărui număr din sistemul hexazecimal, atunci acest număr va crește cu16 o singura data. Este foarte important să înțelegeți acest subiect., deoarece îl vom folosi constant când scriem programe.

Acum, puțin despre cum voi construi exemple în assembler. Nu este foarte convenabil să le prezentați în format HTML, așa că mai întâi va fi codul programului însuși cu linii numerotate, iar imediat după acesta vor fi explicații și note.

Mai mult sau mai puțin așa:

linii Cod program
(1) muta ah,9

Explicatii:

În rândul (1) facem ceva, iar în rândul (15) facem ceva.

Cerere uriașă: NU copiați programe din pagină în clipboard și apoi lipiți-le în Notepad (sau oriunde altundeva)! Introduceți-le manual într-un editor de text. Dacă există o imprimantă, selectați programul, imprimați fragmentul selectat și apoi transferați-l în editor de pe hârtie. Toate exemplele trebuie scrise singur! Acest lucru va grăbi memorarea operatorilor.

Și mai departe. Literele mici și majuscule nu se disting în Assembler. Intrări precum:

Asamblatorul este perceput în mod egal. Puteți, desigur, să forțați asamblatorul să facă distincția între caracterele minuscule și MAIUSCULE, dar nu vom face acest lucru deocamdată. Pentru lizibilitatea programului, cel mai bine este să tastați instrucțiunile cu litere mici și să începeți numele subprogramelor și etichetele cu majuscule. Dar așa va fi convenabil pentru cineva.

Deci, să trecem la primul nostru program:

(1) Segment CSEG

(2) org 100h

(4) Începe:

(6) mov ah,9

(7) mov dx,offset Mesaj

(8) int 21h

(10) int 20h

(11)

(12) Mesaj db „Bună, lume!$”

(13) CSEG se încheie

(14) sfârşitul Începe

Pentru a explica toți operatorii acestui exemplu, vom avea nevoie de mai multe episoade. Prin urmare, vom omite pur și simplu descrierea unor comenzi pe această etapă. Gândește-te doar că așa ar trebui să fie. În viitorul foarte apropiat vom lua în considerare acești operatori în detaliu. Deci, liniile cu numerele (1), (2) și (13) pur și simplu le ignorați.

Rândurile (3), (5), (9) și (11) sunt lăsate necompletate. Acest lucru se face pentru claritate. Asamblatorul le va omite pur și simplu.

Acum să trecem la restul operatorilor. Din rândul (4) începe codul programului. Aceasta este o etichetă care îi spune asamblatorului să pornească codul. Linia (14) conține instrucțiunile end Begin (Începe engleza Start; Sfârşit sfarsit). Acesta este sfârșitul programului. În general, în loc de cuvântÎNCEPE ar fi putut fi folosit altceva. De exemplu, Start:. În acest caz, ar trebui să finalizam programul Sfârșit Start (14).

Rândurile (6) (8) afișează mesajul Salut, lume!. Aici trebuie să vorbim pe scurt despre registrele procesoarelor (vom analiza acest subiect mai detaliat în numărul următor).

Un registru de procesor este o memorie dedicată pentru stocarea unui număr.

De exemplu:

Dacă vrem să adunăm două numere, atunci în matematică scriem astfel:

A, B și C sunt un fel de registre (dacă vorbim despre un computer) în care pot fi stocate unele date. A=5 poate fi citit ca: Atribuiți lui A numărul 5 .

Pentru a atribui o valoare unui registru, există un operator mov în Assembler (din engleză move load). Rândul (6) ar trebui citit astfel: Încărcarea în registru AHnumărul 9 (cu alte cuvinte, atribuim AHnumărul 9). Mai jos vom analiza de ce este necesar acest lucru.

În rândul (7) încărcăm în registru DX adresa mesajului pentru ieșire (în acest exemplu acesta va fi sfoaraBună, lume!$).

Întreruperile vor fi acoperite în detaliu în versiunile viitoare. Aici voi spune câteva cuvinte.

Întrerupe MS-DOS este un fel de subrutină (parte a MS DOS), care se află permanent în memorie și poate fi apelat oricând din orice program.

Luați în considerare cele de mai sus cu un exemplu (evidențiați notele cu litere mici):

Program pentru adăugarea a două numere

AcasăPrograme

A=5 în variabila A introducem valoarea 5

B=8 la variabila B valoarea 8

Adăugarea apelurilor subrutine

acum C este 13

A=10 la fel, doar numere diferite

B=25

Adăugarea apelurilor subrutine

acum C este 35

Sfârșitul programului

Adăugarea subrutinei

C=A+B

ReturnFrom Subroutine ne întoarcem la locul din care am sunat

Sfârșitul subrutinei

În acest exemplu, am numit subrutina de două ori Plus, care a adăugat două numere transmise în variabile A și B . Rezultatul este plasat în variabila C. Când este apelată o subrutină, computerul își amintește de unde a fost sunat și apoi, când subprogramul s-a terminat, computerul revine la locul de unde a fost apelat. Acea. Puteți apela subrutine de un număr nedefinit de ori de oriunde.

Când executăm linia (8) a unui program de asamblare, numim o subrutină (în acest caz numită întrerupere) care imprimă linia pe ecran. Pentru a face acest lucru, punem, de fapt, valorile necesare în registre. Toate munca necesara(ieșire de linie, mișcare a cursorului) este preluată de subrutină. Această linie poate fi citită astfel: numim cea de-a douăzeci și unu de întreruperi ( int din engleză. întrerupe întrerupe). Vă rugăm să rețineți că după numărul 21 există o literă h . Acesta, după cum știm deja, este un număr hexazecimal (33 în zecimală). Desigur, nimic nu ne împiedică să înlocuim linia int 21h la int 33. Programul va funcționa corect. Doar că în Assembler se obișnuiește să se indice numărul de întreruperi în hexazecimal.

La rândul (10), ați ghicit, apelăm întreruperea 20 h . Pentru a apela această întrerupere, nu trebuie să specificați nicio valoare în registre. Îndeplinește o singură sarcină: ieșirea din program (ieșirea în DOS). Ca urmare a întreruperii 20h, programul va reveni la locul unde a fost lansat (încărcat, apelat). De exemplu, în Norton Commander sau DOS Navigator.

Linia (12) conține mesajul care urmează să fie scos. Primul cuvânt ( mesaj mesaj) numele mesajului. Poate fi orice (de exemplu, mizerie sau sfoară etc.). O atenție la rândul (7), în care încărcăm în registru DX adresa noastră de mesaj.

Putem crea o altă linie, pe care o vom numi mizerie 2. Apoi, pornind de la linia (9), introduceți următoarele comenzi:

(10) mov dx, offset Mess2

(13) Mesaj db „Bună, lume!$”

(14) Mess2 db „Sunt eu! $”

și asamblați din nou programul nostru. Sper că ghiciți ce se va întâmpla

Acordați atenție ultimului caracter din rânduri Mesaj și Mess2 - $. Indică sfârșitul liniei. Dacă îl eliminăm, atunci 21 h întreruperea va continua să iasă până când un personaj este întâlnit undeva în memorie $. Pe ecran vom vedea gunoaie .

Dacă aveți un depanator, puteți vedea cum va funcționa programul nostru.

Scopul acestei probleme a fost să nu înțeleagă în detaliu cu fiecare operator. Acest lucru este imposibil, pentru că încă nu ai suficiente cunoștințe. Cred că după 3-4 lansări veți înțelege principiul și structura programului în Assembler. Poate ați crezut că limbajul de asamblare este extrem de complicat, dar credeți-mă, dintr-o privire.

Mulți utilizatori de computere înțeleg că computerul funcționează în sistem binar. În mod tradițional, stările unui sistem binar sunt reprezentate de numerele 0 și 1, deși mai precis, fiecare stare denotă prezența sau absența unui semnal, adică mai corect ar fi să numim stările „off” și „on”, sau „nu” și „da”. Starea „oprit” sau „nu” corespunde numărului 0, iar starea „pornit” sau „da” corespunde numărului 1. Utilizatori obișnuiți De obicei, nu este necesar să se înțeleagă pe deplin structura unui computer, cu toate acestea sistemul de numere binar se face simțit sub forma diferitelor restricții bazate pe o putere a doi. O versiune mai compactă a sistemului binar se numește hexazecimal. Numărul șaisprezece este a patra putere a lui doi. De aici rezultă că este destul de ușor să traduci secvențe binare lungi de zerouri și unu în secvențe hexazecimale scurte. Pentru a face acest lucru, este suficient să împărțiți secvența binară în grupuri de patru cifre (cifre) pornind de la cifra cea mai puțin semnificativă (pe dreapta) și să înlocuiți fiecare grup cu valoarea hexazecimală corespunzătoare.

Sistemul hexazecimal este folosit de obicei pentru confortul perceperii datelor binare, deoarece translațiile din hexazecimal în binar și invers sunt efectuate prin simpla înlocuire a șirurilor. Calculatorul lucrează exclusiv cu secvențe binare, iar notația hexazecimală a acestei secvențe este de patru ori mai compactă, deoarece acest sistem are baza 16 (2 16) și binară 2. O secvență binară poate fi destul de greoaie. De exemplu, scrierea numărului 513 necesită zece cifre binare (1000000001), în timp ce hexazecimală necesită doar trei (201). Cu toate acestea, este nevoie de șaisprezece pentru a reprezenta orice numere hexazecimale personaje diferite, și nu zece, care sunt folosite în sistemul numeric zecimal cu care suntem obișnuiți. Primele zece caractere sunt caractere în intervalul de la 0 la 9, restul sunt litere ale alfabetului latin în intervalul de la A la F. Literele sunt de obicei (dar nu întotdeauna) scrise cu majuscule (majuscule) în notația hexazecimală a unui număr . Primele zece caractere (de la 0 la 9) sunt scrise în același mod ca cifrele din sistemul numeric zecimal și le corespund. Literele din intervalul A la F corespund valorilor din intervalul 10 până la 15.

Luați în considerare corespondența numerelor de la 0 la 15 cu sistemele de numere hexazecimale și binare.

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

Intrările 10, 11 etc. în zecimal, binar și hexazecimal nu se potrivesc. Să luăm în considerare un mic exemplu. Să presupunem că avem un număr hexazecimal 1A5E. pentru a converti în notație binară, pur și simplu înlocuiți cifrele hexazecimale cu grupurile binare corespunzătoare. Rezultă 0001 1010 0101 1110. Dacă scoatem zerouri nesemnificative înaintea numărului și le scriem fără separatori, obținem 1101001011110. Pentru translația inversă, împărțim numărul în grupuri de patru cifre începând de la cea mai puțin semnificativă (din partea dreapta), și, de asemenea, pentru comoditate, adăugați zerouri nesemnificative la grup de seniori până la 4 cifre. Obținem 0001 1010 0101 1110. Înlocuim grupurile cu valorile hexazecimale corespunzătoare, obținem 1A5E.

Pentru a converti un număr hexazecimal într-o reprezentare zecimală, puteți folosi schema prin care scriem numere zecimale. Într-un număr zecimal, fiecare cifră denotă puterea corespunzătoare a zece, începând de la zero și crescând de la dreapta la stânga. De exemplu, numar decimal 123 înseamnă 1*10 2 + 2*10 1 + 3*10 0 . Folosind o metodă similară, vom converti numărul 1A5E în sistemul numeric zecimal. În hexazecimal, precum și în zecimal, fiecare cifră denotă puterea corespunzătoare a șaisprezece, începând de la zero și crescând de la dreapta la stânga. Caracterele 1 și 5 în hexazecimal corespund valorilor 1 și 5 în zecimală, iar caracterele A și E corespund cu 10 și 14. Atunci 1A5E poate fi reprezentat în zecimal ca 1*16 3 + 10*16 2 + 5 *16 1 + 14 * 16 0 = 6750. Cu toate acestea, pentru a evalua numerele hexazecimale, nu este deloc necesar să le convertiți în zecimale. Regulile de comparare, adunare și înmulțire în acest sistem sunt aceleași ca și în sistemul zecimal, principalul lucru este să nu uităm că fiecare cifră poate conține valori de la 0 la 15. Pentru mai multe transfer rapid număr între sistemul numeric, puteți utiliza calculatorul standard în Windows, pentru aceasta este suficient să selectați sistemul de numere în modul avansat calculator, să introduceți un număr în el și să selectați sistemul dorit calcul în care să se afişeze rezultatul.

Deoarece numerele hexazecimale, care constau numai din numere, sunt ușor confundate cu numerele zecimale, ele sunt de obicei marcate astfel încât să fie clar că se folosește notația hexazecimală. Intrările hexazecimale sunt de obicei marcate fie cu o adăugare la sfârșit literă mică„h”, sau prefixul „0x” înainte de a scrie numărul. Astfel, numărul hexazecimal 1A5E poate fi scris ca 1A5Eh sau 0x1A5E, unde „h” la sfârșit sau „0x” la început indică faptul că este utilizată notația hexazecimală.

Notație hexazecimală („Hex”) - mod convenabil reprezentări ale valorilor binare. Așa cum zecimalul are baza zece și binarul are baza doi, hexazecimalul are baza șaisprezece.

Sistemul numeric în baza 16 folosește numerele de la 0 la 9 și literele de la A la F. Figura arată valorile zecimale, binare și hexazecimale echivalente pentru numerele binare de la 0000 la 1111. Este mai ușor pentru noi să exprimăm o valoare ca o singură cifră hexazecimală decât patru biți.

Înțelegerea octeților

Având în vedere că 8 biți (octeți) este o grupare binară standard, numerele binare de la 00000000 la 11111111 pot fi reprezentate în notație hexazecimală ca numere de la 00 la FF. Zerourile inițiale sunt întotdeauna afișate pentru a finaliza reprezentarea pe 8 biți. De exemplu, valoarea binară 0000 1010 ar fi 0A în hexazecimal.

Reprezentarea valorilor hexazecimale

Notă: Este important să distingem valorile hexazecimale de valorile zecimale pentru caracterele de la 0 la 9, așa cum se arată în figură.

Valorile hexazecimale sunt de obicei reprezentate în text de o valoare precedată de 0x (de exemplu, 0x73) sau de un indice 16. Mai rar, ele pot fi urmate de litera H, cum ar fi 73H. Cu toate acestea, deoarece textul indicelui nu este recunoscut în niciunul Linie de comanda, nici în medii de programare, în prezentare tehnica numerele hexazecimale sunt precedate de „0x” (zero X). Prin urmare, exemplele de mai sus ar fi afișate ca 0x0A și, respectiv, 0x73.

Notația hexazecimală este folosită pentru a reprezenta adresele MAC Ethernet și adresele IP din versiunea 6.

Conversii hexazecimale

Conversiile numerelor între valori zecimale și hexazecimale sunt ușoare, dar o împărțire sau înmulțire rapidă cu 16 nu este întotdeauna convenabilă. Dacă sunt necesare astfel de conversii, este de obicei mai ușor să convertiți valoarea zecimală sau hexazecimală în binar și apoi să convertiți valoarea binară în zecimală sau hexazecimală, oricare doriți să obțineți.

Cu practică, este posibil să recunoașteți modele de biți binari care corespund zecimalelor și valori hexazecimale. Figura prezintă aceste modele pentru unele valori de 8 biți.

Sistemul de numere hexazecimale are un alfabet format din 16 cifre:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, b, c, d, e, f.

La scrierea unui număr în sistem hexazecimal, pentru a scrie numerele care denotă numerele 10, 11, 12. 13, 14. 15 se folosesc, respectiv, literele A, B, C, D, E, F.

Conversia numerelor din hexazecimal în zecimal

Puteți converti orice număr hexazecimal în zecimal folosind formula deja cunoscută

Exemple.

    AE07 16 =10∙16 3 +14∙16 2 +0∙16 1 +7∙16 0 =44551 10 .

    100 16 =1∙16 2 +0∙16 1 +0∙16 0 =256 10 .

    58 16 =5∙16 1 +8∙16 0 =.88 10 .

    2A 16 \u003d 2 16 1 + 10 16 0 \u003d 42 10.

Conversia unui număr din sistemul zecimal în hexazecimal se realizează în același mod ca în binar.

Conversia numerelor din hexazecimal în binar și invers

Puteți converti orice număr hexazecimal în binar, după cum urmează. Fiecare cifră hexazecimală a unui număr este scrisă ca un număr binar de patru cifre - tetradă. După aceea, zerourile din stânga pot fi aruncate.

2) 2A= 0010 1010 2 = 101010 2 .

3) 58 16 = 0101 1000 2 = 1011000 2 .

În schimb, puteți converti orice număr binar în hexazecimal în același mod. Fiecare patru cifre binare, numărând de la dreapta la stânga, este scrisă ca o cifră hexazecimală. Aceste figuri sunt, de asemenea, aranjate de la dreapta la stânga.

Exemple.

2. 101010 2 = 10 1010 2 = 2A.

3. 1011000 2 = 101 1000 2 = 58 16 .

Sistem de numere octale

Sistemul de numere octale are un alfabet format din 8 cifre:

0, 1, 2, 3, 4, 5, 6, 7.

Conversia unui număr din zecimal în octal și invers se realizează prin analogie cu conversia în / din binar.

Conversia numerelor din octal în binar și invers

Fiecare cifră a notației octale a unui număr este scrisă ca trei cifre număr binar - triadă.

Exemple.

2563 8 = 010 101 110 011 2 =10101110011 2 .

1001101 2 = 001 001 101 2 = 115 8 .

Materiale metodice pentru lecția de laborator nr.1

Tema lecției de laborator: Sisteme numerice. Măsurarea informațiilor.

Numar de ore: 2.

Exemple cu soluții

    Traducere dinp -ary sistem la 10-ary. Să presupunem că este necesar să convertiți un număr dintr-un anumit sistem numeric în zecimal. Pentru a face acest lucru, trebuie să-l reprezentăm sub formă

11100110 2 = 1∙2 7 + 1∙2 6 + 1∙2 5 + 0∙2 4 + 0∙2 3 + 1∙2 2 + 1∙2 1 + 0∙2 0 = 128 + 64 + 32 + 4 + 2 = 230 10 .

2401 5 = 2∙5 3 + 4∙5 2 + 0∙5 1 + 1∙5 0 = 250 + 100 + 0 + 1 = 351.

    Convertiți din sistem zecimal înp -IC.

2.1 98 10 → X 2 .

Împărțim numărul la 2. Apoi împărțim câtul incomplet la 2. Continuăm până când câtul incomplet devine mai mic decât 2, adică. egal cu 1.

    98: 2 = 49. Rest - 0 .

    49: 2 = 24. Rest - 1 .

    24: 2 = 12. Rest - 0 .

    12: 2 = 6. Rest - 0 .

    6: 2 = 3. Rest - 0 .

    3: 2 = 1 . restul - 1 .

Deoarece ultimul coeficient incomplet este 1, procesul s-a încheiat. Scriem toate resturile de jos în sus, începând cu ultimul coeficient incomplet și obținem numărul 1100010. Deci 98 10 \u003d 1100010 2.

2.2 2391 10 → X 16 .

Împărțiți numărul la 16. Apoi împărțiți câtul parțial la 16. Continuați până când câtul parțial este mai mic de 16.

    2391: 16 = 149. Rest - 7 .

    149: 16 = 9 . restul - 5 .

Deoarece ultimul coeficient incomplet (9) este mai mic de 16, procesul s-a încheiat. Scriem, pornind de la ultimul coeficient incomplet, toate resturile de jos în sus și obținem numărul 957. Deci 2391 10 \u003d 957 16.

2.3 12165 10 → X 2 .

Dacă traduceți diviziunea într-un sistem binar, obțineți un proces greoi și mulțumit. Puteți mai întâi să convertiți numărul în sistemul octal și apoi să înlocuiți cifrele octale de la dreapta la stânga cu triade.

12165 10 = 27605 8 = 010 111 110 000 101 = 10111110000101.

    Determinarea bazei sistemului numericp .

Un băiat a scris despre sine în felul acesta: „Am 24 de degete, câte 5 pe fiecare mână și 12 pe picioare”. Cum poate fi aceasta?

Decizie. Determinați baza sistemului numeric p. Din moment ce știm că există doar 10 10 degete de la picioare, apoi 12 p =1∙p+2 = 10 10 . De aici obținem ecuația p + 2 = 10  p= 8. Deci băiatul a vrut să spună numere în sistemul octal. Într-adevăr, există 24 8 = 2∙8+4 = 20 10 degete în total și 12 8 = 1∙8+2 = 10 10 pe picioare.

  • Serghei Savenkov

    un fel de recenzie „rare”... parcă s-ar grăbi undeva