Introduzione al Sistema Numerico Binario

Concetti Chiave
  • Il sistema numerico binario è un sistema posizionale in base 2, utilizzando solo le cifre 0 e 1.
  • I numeri binari possono essere convertiti in decimale sommando le potenze di 2 corrispondenti ai bit che sono uguali a 1.
  • Il sistema numerico ottale è in base 8 e utilizza le cifre da 0 a 7.
  • Il sistema numerico esadecimale è in base 16 e utilizza le cifre da 0 a 9 e le lettere A a F per rappresentare i valori da 10 a 15.
  • I bit sono le cifre del sistema binario e possono essere utilizzati per rappresentare informazioni nei sistemi digitali.
  • La conversione da binario a decimale può essere effettuata sommando solo le potenze di 2 corrispondenti ai bit che sono uguali a 1.
  • I sistemi numerici ottale ed esadecimale sono utili per rappresentare numeri in modo più compatto rispetto al binario, specialmente in contesti informatici.

Il Sistema Numerico Binario

Un numero decimale come 8.172 rappresenta una quantità uguale a 8 migliaia, più 1 centinaia, più 7 decine, più 2 unità.

Le migliaia, centinaia, ecc., sono potenze di 10 implicite dalla posizione dei coefficienti (simboli) nel numero. Per essere più precisi, 8.172 è una notazione abbreviata per quello che dovrebbe essere scritto come:

8 \times 10^3 + 1 \times 10^2 + 7 \times 10^1 + 2 \times 10^0

Tuttavia, la convenzione è di scrivere solo i coefficienti numerici e, dalla loro posizione, dedurre le potenze necessarie di 10, con le potenze che aumentano da destra a sinistra. Pertanto, l'interpretazione del valore decimale di 8.172 dipende dalla posizione dei coefficienti. Per questo si parla di notazione decimale posizionale.

In generale, un numero con una virgola decimale è rappresentato da una serie di coefficienti:

a_5 \, a_4 \, a_3 \, a_2 \, a_1 \, a_0. \ a_{-1} \, a_{-2} \, a_{-3}

I coefficienti a_i sono una qualsiasi delle 10 cifre (0, 1, 2, . . . ,9), e il valore del pedice i dà il valore posizionale e, quindi, la potenza di 10 per cui il coefficiente deve essere moltiplicato. Quindi, il numero decimale precedente può essere espresso come

\begin{align*} & 10^5 \cdot a_5 \\ + & 10^4 \cdot a_4 \\ + & 10^3 \cdot a_3 \\ + & 10^2 \cdot a_2 \\ + & 10^1 \cdot a_1 \\ + & 10^0 \cdot a_0 \\ + & 10^{-1} \cdot a_{-1} \\ + & 10^{-2} \cdot a_{-2} \\ + & 10^{-3} \cdot a_{-3} \end{align*}

con a_3 = 7, a_2 = 3, a_1 = 9, e a_0 = 2, e gli altri coefficienti uguali a zero.

La radice di un sistema numerico determina il numero di valori distinti che possono essere utilizzati per rappresentare qualsiasi numero arbitrario.

Il sistema numerico decimale si dice che sia di base, o radice, 10 perché utilizza 10 cifre e i coefficienti sono moltiplicati per potenze di 10.

Il sistema binario è un sistema numerico diverso. I coefficienti del sistema numerico binario hanno solo due valori possibili: 0 e 1. Ogni coefficiente a_i è moltiplicato per una potenza della radice, ad esempio, 2^i, e i risultati sono sommati per ottenere l'equivalente decimale del numero. Il punto o virgola radice (ad esempio, la virgola decimale quando 10 è la radice) distingue le potenze positive di 10 dalle potenze negative di 10.

Per esempio, l'equivalente decimale del numero binario 11010.11 è 26.75, come mostrato dalla moltiplicazione dei coefficienti per le potenze di 2:

\begin{align*} & 1 \times 2^4 \\ + & 1 \times 2^3 \\ + & 0 \times 2^2 \\ + & 1 \times 2^1 \\ + & 0 \times 2^0 \\ + & 1 \times 2^{-1} \\ + & 1 \times 2^{-2} = 26.75 \end{align*}

Esistono molti sistemi numerici diversi. In generale, un numero espresso in un sistema in base-r ha coefficienti moltiplicati per potenze di r:

\begin{align*} & a_n \cdot r^n \\ + & a_{n-1} \cdot r^{n-1} \\ + & \cdots \\ + & a_2 \cdot r^2 \\ + & a_1 \cdot r \\ + & a_0 \\ + & a_{-1} \cdot r^{-1} \\ + & a_{-2} \cdot r^{-2} \\ + & \cdots \\ + & a_{-m} \cdot r^{-m} \end{align*}

I coefficienti a_i variano in valore da 0 a r-1. Per distinguere tra numeri di basi diverse, racchiudiamo i coefficienti tra parentesi e scriviamo un pedice uguale alla base utilizzata (eccetto a volte per i numeri decimali, dove il contesto rende ovvio che la base è decimale). Un esempio di un numero in base-5 è

(4021.2)_5 = 4 \times 5^3 + 0 \times 5^2 + 2 \times 5^1 + 1 \times 5^0 + 2 \times 5^{-1} = (511.4)_{10}

I valori dei coefficienti per la base 5 possono essere solo 0, 1, 2, 3 e 4.

Il sistema numerico ottale è un sistema in base-8 che ha otto cifre: 0, 1, 2, 3, 4, 5, 6, 7. Un esempio di un numero ottale è (127.4)_8. Per determinare il suo valore decimale equivalente, espandiamo il numero in una serie di potenze con base 8:

(127.4)_8 = 1 \times 8^2 + 2 \times 8^1 + 7 \times 8^0 + 4 \times 8^{-1} = (87.5)_{10}

Si noti che le cifre 8 e 9 non possono apparire in un numero ottale.

È consuetudine prendere in prestito le r cifre necessarie per i coefficienti dal sistema decimale quando la base del numero è inferiore a 10. Le lettere dell'alfabeto sono utilizzate per integrare le 10 cifre decimali quando la base del numero è maggiore di 10. Per esempio, nel sistema numerico esadecimale (base-16), le prime 10 cifre sono prese in prestito dal sistema decimale. Le lettere A, B, C, D, E e F sono utilizzate per le cifre 10, 11, 12, 13, 14 e 15, rispettivamente. Un esempio di un numero esadecimale è

(\text{B65F})_{16} = 11 \times 16^3 + 6 \times 16^2 + 5 \times 16^1 + 15 \times 16^0 = (46.687)_{10}

Il sistema esadecimale è comunemente utilizzato dai progettisti per rappresentare lunghe stringhe di bit negli indirizzi, istruzioni e dati nei sistemi digitali. Per esempio, B65F è utilizzato per rappresentare 1011011001011111.

Come notato prima, le cifre in un numero binario sono chiamate bit. Quando un bit è uguale a 0, non contribuisce alla somma durante la conversione. Pertanto, la conversione da binario a decimale può essere ottenuta sommando solo i numeri con potenze di due corrispondenti ai bit che sono uguali a 1. Per esempio,

(110101)_2 = 32 + 16 + 4 + 1 = (53)_{10}

Ci sono quattro 1 nel numero binario. Il numero decimale corrispondente è la somma delle quattro potenze di due. Zero e i primi 24 numeri ottenuti da 2 alla potenza di n sono elencati nella tabella seguente:

n 2^n
0 1
1 2
2 4
3 8
4 16
5 32
6 64
7 128
8 256
9 512
10 1.024 (1K)
11 2.048
12 4.096 (4K)
13 8.192
14 16.384
15 32.768
16 65.536
17 131.072
18 262.144
19 524.288
20 1.048.576 (1M)
21 2.097.152
22 4.194.304
23 8.388.608
Tabella 1: Potenze di due

Nel lavoro informatico, 2^{10} è riferito come K (kilo), 2^{20} come M (mega), 2^{30} come G (giga), e 2^{40} come T (tera). Quindi, 4K = 2^{12} = 4.096 e 16M = 2^{24} = 16.777.216. La capacità di memoria del computer e la dimensione delle parole sono solitamente date in byte. Un byte è uguale a otto bit e può contenere (cioè, rappresentare il codice di) un carattere della tastiera. Un disco rigido del computer con quattro gigabyte di memorizzazione ha una capacità di 4G = 2^{32} byte (circa 4 miliardi di byte). Un terabyte è 1024 gigabyte, circa 1 trilione di byte.

Le operazioni aritmetiche con numeri in base r seguono le stesse regole dei numeri decimali. Quando viene utilizzata una base diversa dalla familiare base 10, bisogna fare attenzione a utilizzare solo le cifre r consentite.

Ecco di seguito alcuni esempi di operazioni aritmetiche tra numeri binari:

  • Addizione:

    \begin{array}{lrr} \text{addendo:} & 101101 & + \\ \text{addendo:} & 100111 & = \\ \hline \text{somma:} & 1010100 \end{array}

    La somma di due numeri binari è calcolata con le stesse regole del decimale, eccetto che le cifre della somma in qualsiasi posizione significativa possono essere solo 0 o 1. Qualsiasi riporto ottenuto in una data posizione significativa è utilizzato dalla coppia di cifre una posizione significativa superiore.

  • Sottrazione:

    \begin{array}{lrr} \text{minuendo:} & 101101 & - \\ \text{sottraendo:} & 100111 & = \\ \hline \text{differenza:} & 000110 \end{array}

    La sottrazione è leggermente più complicata. Le regole sono ancora le stesse del decimale, eccetto che il prestito in una data posizione significativa aggiunge 2 a una cifra del minuendo. Un prestito nel sistema decimale aggiunge 10 a una cifra del minuendo.

  • Moltiplicazione:

    \begin{array}{lrr} \text{fattore:} & 1011 & \times \\ \text{fattore:} & 101 & = \\ \hline \text{prodotto parziale:} & 1011 & + \\ \text{prodotto parziale:} & 0000\phantom{0} & + \\ \text{prodotto parziale:} & 1011\phantom{00} & = \\ \hline \text{prodotto:} & 110111 \end{array}

    La moltiplicazione è semplice: Le cifre del moltiplicatore sono sempre 1 o 0; pertanto, i prodotti parziali sono uguali a una copia spostata (a sinistra) del moltiplicando o a 0.

Esempio

Alla luce di quanto detto, proviamo a convertire il numero binario (110101.11)_2 in decimale:

\begin{align*} & 1 \times 2^5 \\ + & 1 \times 2^4 \\ + & 0 \times 2^3 \\ + & 1 \times 2^2 \\ + & 0 \times 2^1 \\ + & 1 \times 2^0 \\ + & 1 \times 2^{-1} \\ + & 1 \times 2^{-2} = 53.75 \end{align*}