Litere în al 16-lea sistem numeric. Cod hexadecimal

Sistem de numere hexazecimale, este de departe cel mai popular mijloc de înregistrare compactă a numerelor binare. Foarte utilizat pe scară largă în dezvoltarea și proiectarea tehnologiei digitale.

După cum sugerează și numele, baza acestui sistem este numărul șaisprezece 16 sau în hexazecimal 10 16 . Pentru a evita confuzia, atunci când scriem numere în alte sisteme numerice decât zecimal, vom indica baza sistemului numeric în colțul din dreapta jos al notației numerice principale. Deoarece baza sistemului este numărul șaisprezece, înseamnă că pentru a reprezenta numerele avem nevoie de șaisprezece cifre. Primele zece cifre sunt preluate din sistemul zecimal cunoscut nouă (0,1,..,8,9) și se adaugă și șase litere ale alfabetului latin (a,b,c,d,e,f). De exemplu, în numărul hexazecimal 3f7c2, literele „f” și „c” sunt cifre hexazecimale.

Numărarea în hexazecimală este similară cu numărarea în zecimală. Să încercăm să numărăm și să scriem numere construindu-le din cele șaisprezece cifre disponibile:

Zero - 0 ;
unu - 1 ;
Două - 2 ;
...
și așa mai departe…
...
Opt - 8 ;
Nouă - 9 ;
Zece - A;
Unsprezece - b;
Doisprezece - c;
Treisprezece - d;
Paisprezece - e;
Cincisprezece - f;

Ce e de facut in continuare? Toate numerele au dispărut. Cum să descrii numărul șaisprezece? Să facem la fel ca în sistemul zecimal. Acolo am introdus conceptul de zece, aici vom introduce conceptul de „șaisprezece” și vom spune că șaisprezece este unul „șaisprezece” și zero uni. Și acest lucru poate fi deja notat - „10 16”.

Asa de, Şaisprezece - 10 16 (un „șaisprezece”, zero unu)
Şaptesprezece - 11 16 (un „șaisprezece”, o unitate)
...
și așa mai departe…
...
Douăzeci și cinci - 19 16 (unul „șaisprezece”, nouă unii)
Douazeci si sase - 1a 16 (un „șaisprezece”, zece unități)
Douazeci si sapte - 1b 16 (un „șaisprezece”, unsprezece unități)
...
și așa mai departe…
...
Treizeci - 1e 16 (unul „șaisprezece”, paisprezece)
Treizeci și unu - 1f 16 (unul „șaisprezece”, cincisprezece)
Treizeci si doi - 20 16 (doi șaisprezece, zero unu)
Treizeci si trei - 21 16 (doi șaisprezece, unul unul)
...
și așa mai departe…
...
Două sute cincizeci și cinci - ff 16 (cincisprezece cu „șaisprezece”, cincisprezece)

două sute cincizeci și șase - 100 16 (unul „două sute cincizeci și șase”, zero „șaisprezece”, zero unii)
două sute cincizeci și șapte - 101 16 (unul „două sute cincizeci și șase”, de la zero la „șaisprezece”, unul unu)
două sute cincizeci și opt - 102 16 (unul „Două sute cincizeci și șase”, de la zero la „șaisprezece”, doi unu)
...
și așa mai departe...
...

Ori de câte ori am epuizat setul de cifre pentru a afișa următorul număr, introducem unități mai mari de numărare (adică numărare cu „șaisprezece”, „două sute cincizeci și șase”, etc.) și scriem numărul extins cu o cifră.

Luați în considerare numărul 3e2c 16 scrise în sistem numeric hexazecimal. Putem spune despre el că conține: trei x patru mii nouăzeci și șase, „e” (paisprezece) x două sute cincizeci și șase, două x șaisprezece și „c” (douăsprezece). Și îi puteți obține valoarea prin numerele incluse în el, după cum urmează.

3e2c 16 = 3 *4096+14 *256+2 *16+12 *1, aici și dedesubt semnul * (asterisc) înseamnă înmulțire.

Dar seria de numere 4096, 256, 16, 1 nu este altceva decât puteri întregi ale numărului șaisprezece (baza sistemului numeric) și, prin urmare, poate fi scrisă:

3e2c 16 = 3 *16 3 +14 *16 2 +2 *16 1 +12 *16 0

În mod similar, pentru o fracție hexazecimală (număr fracțional), de exemplu: 0,5a2 16 despre el putem spune că conține: cinci șaisprezecele, „a” (zece) două sute cincizeci și șase și două patru mii nouăzeci și șase. Și valoarea sa poate fi calculată după cum urmează:

0,5a2 16 = 5 *(1/16) + 10 *(1/256) + 2 *(1/4096)

Și iată o serie de numere 1/16; 1/256 și 1/4096 nu sunt altceva decât puteri întregi de șaisprezece și mai putem scrie:

0,5a2 16 = 5 *16 -1 + 10 *16 -2 + 2 *16 -3

Pentru numărul mixt 7b2.1f9 putem scrie în același mod:

7b2.1f9 = 7 *16 2 +11 *16 1 +2 *16 0 +1 *16 -1 +15 *16 -2 +9 *16 -3

Să numerotăm cifrele părții întregi a unui număr hexazecimal, de la dreapta la stânga, ca 0,1,2...n (numerotarea începe de la zero!). Și cifrele părții fracționale, de la stânga la dreapta, cum ar fi -1,-2,-3...-m, apoi valoarea unui anumit număr hexazecimal poate fi calculată folosind formula:

N = d n 16 n +d n-1 16 n-1 +…+d 1 16 1 +d 0 16 0 +d -1 16 -1 +d -2 16 -2 +…+d -(m-1) 16-(m-1) +d-m16-m

Unde: n- numărul de cifre din partea întreagă a numărului minus unu;
m- numărul de cifre din partea fracționată a numărului
d i- cifră în picioare i- al-lea rang

Această formulă se numește formula pentru expansiunea pe biți a unui număr hexazecimal, adică număr scris în sistem numeric hexazecimal. Dacă înlocuim numărul șaisprezece din această formulă cu un număr arbitrar q, apoi obținem formula de expansiune pentru numărul scris în qth sistemul de numere, adică cu baza q:

N = d n q n +d n-1 q n-1 +…+d 1 q 1 +d 0 q 0 +d -1 q -1 +d -2 q -2 +…+d -(m-1) q - (m-1) +d -m q -m

Folosind această formulă puteți calcula oricând valoarea unui număr scris în orice sistem numeric pozițional cu o bază q.

Alte sisteme de numere pot fi găsite pe site-ul nostru folosind următoarele link-uri.

Originea din Babilonul antic. În India, sistemul funcționează sub formă de numerotare zecimală pozițională folosind zero, națiunea arabă a împrumutat acest sistem de numere de la indieni, iar europenii, la rândul lor, l-au luat de la ei. În Europa, acest sistem a început să fie numit arab.

Sistem poziționalsocoteala— semnificația tuturor cifrelor depinde de poziția (cifra) cifrei date în număr.

Exemple, sistemul numeric zecimal standard este un sistem pozițional. Să zicem dat 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 semnificație3 . 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.

Sistem de numere hexazecimale(numere hexazecimale) - sistem de numere pozițional. Bază hexazecimală este cifra 16.

Scriind numere în sistemul de numere octale obținem expresii destul de compacte, dar în sistemul 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. Conversia de la hexazecimal la binar și invers este similar cu procesul pentru octal.

Aplicarea sistemului numeric hexazecimal.

Sistemul numeric hexazecimal este destul de bine folosit în computerele moderne, De exemplu folosește-l pentru a indica 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 într-un număr zecimal, trebuie să reduceți numărul dat la forma sumei produselor puterilor bazei sistemului numeric hexazecimal cu cifrele corespunzătoare din cifrele numărului hexazecimal.

De exemplu, convertiți numărul hexazecimal 5A3 la zecimală. Aici 3 numere. Pe baza regulii de mai sus, o reducem la forma unei sume de puteri cu o bază de 16:

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

Conversia numerelor din binar în hexazecimal și invers.

Pentru a converti un număr binar cu mai multe cifre în hexazecimal, trebuie să îl împărțiți în tetrade de la dreapta la stânga și să înlocuiți toate tetradele cu cifra hexazecimală corespunzătoare. Pentru a converti un număr din sistemul hexazecimal în sistemul binar, trebuie să schimbați fiecare cifră î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ă.

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

1. Din sistemul numeric zecimal:

  • împărțiți numărul la baza sistemului numeric tradus;
  • găsiți restul la împărțirea părții întregi a unui număr;
  • notează toate resturile din împărțire în ordine inversă;

2. Din sistemul de numere binar:

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

De exemplu, 1000110 = 1.000 110 = 1068

  • Pentru a converti un număr din sistemul numeric 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

Pentru a scrie programe în Assembly, trebuie să înțelegeți sistemul numeric hexazecimal. Nu este nimic complicat în asta. Folosim sistemul zecimal în viață. Sunt sigur că o știți cu toții, așa că voi încerca să explic sistemul hexazecimal folosind o analogie cu sistemul zecimal.

Deci, în sistemul zecimal, dacă adăugăm un zero la orice număr din dreapta, 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 numere diferite (de fapt, de aceea se numește zecimal).

În sistemul hexazecimal, folosim șaisprezece „cifre”. Am scris în mod special cuvântul „cifre” între ghilimele, pentru că... Nu folosește doar numere. Și într-adevăr, cum poate fi asta? Să 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 nu este dificil 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 un zero la dreapta oricărui număr din sistemul hexazecimal, atunci acest număr va crește cu16 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 numerele hexazecimale de numerele zecimale din Exemplul 1? Și din această serie: 10, 12, 45, 64, 12, 8, 19? Acestea pot fi fie hexazecimale, fie zecimale. Pentru a evita confuzia și computerul să poată distinge clar un număr de altul, în asamblator se obișnuiește să plaseze simbolul h sau H după un număr hexazecimal ( H este o abreviere pentru engleză. hexazecimal (hexazecimal). Pentru concizie, uneori este numit simplu Hex ) . Și nu pune nimic după zecimală. Deoarece numerele de la 0 la 9 în ambele sisteme au aceleași semnificații, atunci numerele scrise ca 5 și 5h sunt aceleași.

Acea. Exemplul 1 (vezi mai sus) ar fi mai corect să scriem astfel: 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.

Vom vedea de ce este necesar sistemul hexazecimal în numerele ulterioare. Deocamdată, pentru programul nostru exemplu, care va fi discutat mai jos, trebuie să știm despre existența numerelor 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 un 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 Assembly. Nu este în întregime convenabil să le prezentați în format HTML, așa că mai întâi va fi codul programului în sine cu linii numerotate, iar imediat după acesta vor fi explicații și note.

Ca asta:

linii Cod program
(1) muta ah,9

Explicatii:

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

Cerere uriașă: NU copiați programe de pe o pagină în clipboard și apoi lipiți-le în Notepad (sau oriunde altundeva)! Retastați-le manual într-un editor de text. Dacă aveți 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. Nu există nicio diferență între literele mici și majuscule în asamblare. Înregistrări ale formularului:

Asamblatorul le percepe la fel. Puteți, desigur, să forțați asamblatorul să facă distincția între caracterele minuscule și MAJUSCULE, dar nu vom face acest lucru deocamdată. Pentru a face programul mai ușor de citit, cel mai bine este să tastați operatorii cu litere mici și să începeți numele subprogramelor și etichetele cu majuscule. Dar depinde cine va fi confortabil.

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şit Început

Pentru a explica toți operatorii din acest exemplu, vom avea nevoie de mai multe ediții. Prin urmare, vom omite pur și simplu descrierea unor comenzi în această etapă. Doar presupuneți că așa ar trebui să fie. Ne vom uita la acești operatori în detaliu în viitorul foarte apropiat. Deci, liniile numerotate (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 luarea în considerare a operatorilor rămași. Codul programului începe cu linia (4). Acesta este un semn care îi spune asamblatorului la începutul codului. Linia (14) conține operatorii end Begin (Începe engleza Start; Sfârşit Sfârşit). 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ă încheiem programul Sfârșit Start (14).

Rândurile (6) (8) afișează mesajul Salut, lume!. Aici va trebui 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 special alocată pentru stocarea unui număr.

De exemplu:

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

A, B și C acestea 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 limba engleză move load). Rândul (6) ar trebui citit astfel: Încărcarea în registru AH.numărul 9 (cu alte cuvinte, atribuim AH.numărul 9). Mai jos vom vedea de ce este necesar acest lucru.

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

Întreruperile vor fi tratate în detaliu în numerele ulterioare. Aici voi spune câteva cuvinte.

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

Să luăm în considerare cele de mai sus folosind un exemplu (Note cu litere mici):

Program pentru adăugarea a două numere

AcasăPrograme

A=5 Introducem valoarea 5 în variabila A

B=8 la variabila B valoarea 8

Adăugarea subrutinelor de apelare

acum C este egal cu 13

A=10 același lucru, doar numere diferite

B=25

Adăugarea subrutinelor de apelare

acum C este egal cu 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 apelată, iar apoi, când subprogramul a terminat de rulat, 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, apelăm o subrutină (în acest caz numită întrerupere), care afișează linia pe ecran. În acest scop, plasăm, de fapt, valorile necesare în registre. Toată munca necesară (ieșirea unei linii, mutarea cursorului) este preluată de subrutină. Acest rând poate fi citit astfel: apelați 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. Este doar o practică obișnuită în Assembler să indice numărul de întreruperi în hexazecimal.

La rândul (10), noi, după cum probabil 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 executării întreruperii 20h, programul va reveni la locul de 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) titlul mesajului. Poate fi orice (de exemplu, mizerie sau sfoară etc.). DESPRE 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 Mess2. 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 reasamblați programul nostru. Sper că poți ghici 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 va întâlni un personaj undeva în memorie $. Pe ecran vom vedea gunoi .

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 unui program Assembly. Poate că limbajul adunării vi s-a părut extrem de complicat, dar credeți-mă, asta este la prima vedere.

Pentru a reprezenta numere într-un microprocesor se folosește sistem de numere binar.
În acest caz, orice semnal digital poate avea două stări stabile: „nivel înalt” și „nivel scăzut”. În sistemul de numere binar, două cifre sunt folosite pentru a reprezenta orice număr, respectiv: 0 și respectiv 1. Număr arbitrar x=a n a n-1 ..a 1 a 0 ,a -1 a -2 …a -m va fi scris în sistem de numere binar ca

x = a n ·2 n +a n-1 ·2 n-1 +…+a 1 ·2 1 +a 0 ·2 0 +a -1 ·2 -1 +a -2 ·2 -2 +…+a -m ·2 -m

Unde un i— cifre binare (0 sau 1).

Sistem de numere octale

În sistemul de numere octale, cifrele de bază sunt numerele de la 0 la 7. 8 cele de ordin scăzut sunt combinate într-una de ordin înalt.

Sistem de numere hexazecimale

În sistemul numeric hexazecimal, cifrele de bază sunt numerele de la 0 la 15 inclusiv. Pentru a desemna cifrele de bază mai mari decât 9 cu un singur simbol, în plus față de cifrele arabe 0...9 din sistemul numeric hexazecimal, sunt folosite litere din alfabetul latin:

10 10 = A 16 12 10 = C 16 14 10 = E 16
11 10 = B 16 13 10 = D 16 15 10 = F 16.

De exemplu, numărul 175 10 în sistemul numeric hexazecimal va fi scris ca AF 16. Într-adevăr,

10·16 1 +15·16 0 =160+15=175

Tabelul prezintă numerele de la 0 la 16 în sisteme de numere zecimal, binar, octal și hexazecimal.

Zecimal Binar Octal hexazecimal
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 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10

Conversii binar-octal și binar-hexazecimal

Sistemul de numere binare este convenabil pentru efectuarea de operații aritmetice folosind hardware-ul microprocesorului, dar este incomod pentru percepția umană deoarece necesită un număr mare de cifre. Prin urmare, în tehnologia computerelor, pe lângă sistemul de numere binar, sistemele de numere octale și hexazecimale au fost utilizate pe scară largă pentru o reprezentare mai compactă a numerelor.

Cele trei cifre ale sistemului de numere octale implementează toate combinațiile posibile de cifre octale în sistemul de numere binar: de la 0 (000) la 7 (111). Pentru a converti un număr binar în octal, trebuie să combinați cifrele binare în grupuri de 3 cifre (triade) în două direcții, începând de la separatorul zecimal. Dacă este necesar, trebuie să adăugați zerouri nesemnificative la stânga numărului inițial. Dacă un număr conține o parte fracțională, atunci în dreapta acestuia puteți adăuga și zerouri nesemnificative până când toate triadele sunt umplute. Fiecare triadă este apoi înlocuită cu o cifră octală.

Exemplu: Convertiți numărul 1101110.01 2 în sistem de numere octale.

Combinăm cifre binare în triade de la dreapta la stânga. Primim

001 101 110,010 2 = 156,2 8 .

Pentru a converti un număr din octal în binar, trebuie să scrieți fiecare cifră octală în cod binar:

156,2 8 = 001 101 110,010 2 .

Cele patru cifre ale sistemului de numere hexazecimale implementează toate combinațiile posibile de cifre hexazecimale în sistemul de numere binar: de la 0 (0000) la F(1111). Pentru a converti un număr binar în hexazecimal, trebuie să combinați cifrele binare în grupuri de 4 cifre (tetrade) în două direcții, începând de la separatorul zecimal. Dacă este necesar, trebuie să adăugați zerouri nesemnificative la stânga numărului inițial. Dacă numărul conține o parte fracțională, atunci în dreapta acestuia trebuie să adăugați și zerouri nesemnificative până când toate caietele sunt umplute. Fiecare tetradă este apoi înlocuită cu o cifră hexazecimală.

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

Combinăm cifre binare în tetrade de la dreapta la stânga. Primim

0110 1110,1100 2 = 6E,C 16 .

Pentru a converti un număr din hexazecimal în binar, trebuie să scrieți fiecare cifră hexazecimală în cod binar.

Notație hexazecimală („Hex”)- o modalitate convenabilă de a reprezenta valori binare. Așa cum sistemul numeric zecimal are o bază de zece și sistemul de numere binar are o bază de doi, sistemul numeric hexazecimal are o bază de ș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. Ne este mai ușor să exprimăm o valoare ca una cifră hexazecimală decât ca patru biți

Înțelegerea octeților

Având în vedere că 8 biți (octeți) sunt gruparea 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 în hexazecimal ar fi 0A.

Reprezentarea valorilor hexazecimale

Vă rugăm să rețineți: 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 printr-o valoare precedată de 0x (cum ar fi 0x73) sau prin utilizarea unui indice de 16. Mai puțin frecvent, acestea pot fi urmate de litera H, cum ar fi 73H. Cu toate acestea, deoarece textul indicelui nu este recunoscut pe linia de comandă sau în mediile de programare, ele sunt precedate de „0x” (zero X) în reprezentarea tehnică a numerelor hexazecimale. Prin urmare, exemplele de mai sus ar fi afișate ca 0x0A și, respectiv, 0x73.

Notația hexazecimală este utilizată pentru a reprezenta adresele MAC Ethernet și adresele IP Versiunea 6.

Conversii hexazecimale

Conversia numerelor între valori zecimale și hexazecimale este simplă, dar împărțirea sau înmulțirea rapidă cu 16 nu este întotdeauna convenabilă. Dacă sunt necesare astfel de conversii, este de obicei mai ușor să convertiți o valoare zecimală sau hexazecimală în binar, apoi convertiți valoarea binară în zecimală sau hexazecimală, în funcție de ceea ce doriți să obțineți.

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