Soluzioni
  • Per svolgere la conversione esadecimale binario possiamo procedere in due modi: usare la tabella esadecimale oppure servirci della base dieci, ossia convertire il numero esadecimale in un numero decimale, e successivamente passare dalla forma decimale a quella in base due.

    Prima di spiegare i due metodi e di vedere qualche esempio ricordiamo come si definiscono i sistemi di numerazione esadecimale e binario, quali sono i loro simboli e come si rappresentano.

    Il sistema esadecimale è un sistema di numerazione posizionale in base sedici. Ciò significa che per comporre un numero si usano sedici simboli, che sono:

    - le cifre da 0 a 9 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) e

    - le lettere dalla A alla F (A, B, C, D, E, F).

    Il sistema binario è invece un sistema di numerazione posizionale in base due, ossia per comporre un numero binario si usano solo due simboli, e in particolare le cifre 0 e 1.

    Quando si lavora con più sistemi di numerazione, per evitare fraintendimenti si deve sempre specificare la base con cui si scrive un numero. Per farlo basta racchiudere il numero tra una coppia di parentesi tonde e indicare la base a destra, come pedice. Nei casi in cui la base viene omessa si sottintende che il numero è scritto in forma decimale.

    Ad esempio

    1000

    è il numero mille nel sistema di numerazione decimale.

    (1000)_{16}

    rappresenta un numero esadecimale e si legge "uno, zero, zero, zero in base sedici".

    (1000)_2

    è un numero binario e si legge "uno, zero, zero, zero in base due".

    Conversione da esadecimale a binario con la tabella esadecimale

    Il metodo più veloce per convertire un numero esadecimale nel corrispondente numero binario prevede di usare la tabella esadecimale. Si tratta di una tabella che elenca i valori delle sedici cifre esadecimali in base dieci e in base due.

     

    Sistema esadecimale

    Sistema decimale

    Sistema binario

    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

    A

    10

    1010

    B

    11

    1011

    C

    12

    1100

    D

    13

    1101

    E

    14

    1110

    F

    15

    1111

     

    Per svolgere la conversione da esadecimale a binario con la tabella esadecimale, dobbiamo:

    - separare le cifre del numero in base sedici mantenendone invariata la posizione;

    - sostituire ogni cifra con il corrispondente valore nel sistema binario, usando la tabella esadecimale;

    - scrivere le cifre l'una di seguito all'altra, senza spazi, ed eliminare eventuali zeri a sinistra.

    Il numero che si ottiene è l'esatta conversione del numero esadecimale in base due.

    Esempi di conversione da esadecimale a binario con la tabella esadecimale

    Vediamo qualche esempio: svolgiamo un paio di esercizi sulla conversione dalla base sedici alla base due con la tabella esadecimale.

    Esempio A

    Convertire in base due il numero (3A5)16.

    Svolgimento: separiamo le cifre del numero da convertire

    3 \ \ \ A \ \ \ 5

    Scriviamo il valore binario di ogni cifra servendoci della tabella esadecimale

    \\ (3)_{16} = (0011)_2 \\ \\ (A)_{16} = (1010)_2 \\ \\ (5)_{16} = (0101)_2

    e sostituiamo

    3 \ \ \ A \ \ \ 5 \ \ \ \to \ \ \ 0011 \ \ \ 1010 \ \ \ 0101

    Eliminiamo i due zeri a sinistra e scriviamo le cifre binarie l'una dietro l'altra, senza spazi:

    (3A5)_{16} = (1110100101)_2

    Esempio B

    Determinare la forma binaria del numero esadecimale (F4B)16.

    Svolgimento: separiamo le cifre

    F \ \ \ 4 \ \ \ B

    e sostituiamo ogni cifra con l'equivalente in base due. Poiché

    \\ (F)_{16} = (1111)_2 \\ \\ (4)_{16} = (0100)_2 \\ \\ (B)_{16} = (1011)_2

    abbiamo

    F \ \ \ 4 \ \ \ B \ \ \ \to \ \ \ 1111 \ \ \ 0100 \ \ \ 1011

    In questo caso non vi sono zeri da eliminare, infatti la prima cifra a sinistra è 1. In definitiva

    (F4B)_{16}=(111101001011)_2

    Conversione da esadecimale a binario con la base 10

    Un altro metodo con cui possiamo passare dalla base sedici alla base due consiste nello svolgere una doppia conversione, ossia:

    - passare dal sistema esadecimale al sistema decimale;

    - calcolare la rappresentazione in base due del numero ottenuto, cioè passare dal sistema decimale al sistema binario.

    Sebbene si tratti di un procedimento molto più laborioso del precedente, è l'unico che permette di svolgere le conversioni quando non si dispone della tabella esadecimale.

    Esempio di conversione da esadecimale a binario con la base 10

    Convertire il numero esadecimale (12C)16 in base due.

    Svolgimento: la prima cosa da fare è calcolare la rappresentazione in base dieci del numero (12C)16.

    Assegniamo la posizione alle cifre del numero, partendo dalla prima a destra e procedendo verso sinistra

    \underbrace{1}_{\mbox{Terza}} \ \ \underbrace{2}_{\mbox{Seconda}} \ \ \underbrace{C}_{\mbox{Prima}}

    A questo punto dobbiamo scrivere il valore che ogni cifra ha nel sistema decimale. In caso di dubbi ricordiamo che le cifre numeriche del sistema esadecimale (quelle da 0 a 9) prese singolarmente hanno lo stesso valore di quelle del sistema decimale, mentre le lettere hanno i seguenti valori

    \\ A=10 \ \ \ ; \ \ \ B=11 \ \ \ ; \ \ \ C=12 \\ \\ D=13 \ \ \ ; \ \ \ E=14 \ \ \ ; \ \ \ F=15

    I valori delle cifre del numero da convertire sono quindi

    1 = 1 \ \ ; \ \ 2=2 \ \ ; \ \ C=12

    Moltiplichiamo il valore della prima cifra per 160=1, il valore della seconda per 161=16 e il valore della terza per 162=256

    \\ 12 \times 16^0 = 12 \times 1 = 12 \\ \\ 2 \times 16^1 = 2 \times 16 = 32 \\ \\ 1 \times 16^2 = 1 \times 256 = 256

    Sommiamo i prodotti

    12+32+256 = 300

    Il numero così ottenuto è la rappresentazione in base dieci nel numero (12C)16

    (12C)_{16}=300

    A questo punto possiamo passare dalla base sedici alla base due, ossia determinare la rappresentazione binaria del numero 300.

    Calcoliamo il quoziente e il resto della divisione tra 300 e 2, e continuiamo a dividere i vari quozienti per 2 fino a quando non otteniamo come quoziente 0

    \\ 300:2 = 150 \ \mbox{ resto } 0 \\ \\ 150:2 = 75 \ \mbox{ resto } 0 \\ \\ 75:2 = 37 \ \mbox{ resto } 1 \\ \\ 37:2 = 18 \ \mbox{ resto } 1 \\ \\ 18:2 = 9 \ \mbox{ resto } 0 \\ \\ 9:2 = 4 \ \mbox{ resto } 1 \\ \\ 4:2=2 \ \mbox{ resto } 0 \\ \\ 2:2=1 \ \mbox{ resto } 0 \\ \\ 1:2=0 \ \mbox{ resto } 1

    Scriviamo i resti in ordine inverso rispetto a come li abbiamo ottenuti

    300 = (100101100)_2

    e abbiamo finito!

    (12C)_{16} = 300 = (100101100)_2

    ***

    Se vuoi vedere come si effettua la conversione inversa, da binario a esadecimale, puoi leggere l'approfondimento dell'omonimo link. Se invece vuoi verificare i risultati delle conversioni, puoi usare il convertitore esadecimale. ;)

    Risposta di Galois
 
MEDIE Geometria Algebra e Aritmetica
SUPERIORI Algebra Geometria Analisi Altro
UNIVERSITÀ Analisi Algebra Lineare Algebra Altro
EXTRA Pillole Wiki
 
Esercizi simili e domande correlate
Domande della categoria Wiki - Basi numeriche