Rappresentazione dei valori numerici in binario
Quando parliamo di binario, ci riferiamo a un sistema di numerazione che utilizza soltanto due cifre: 0 e 1. Questo sistema è alla base del funzionamento dei computer e di altri dispositivi elettronici, perché si presta molto bene a rappresentare due stati: acceso/spento, vero/falso, ecc.
Il sistema binario è un sistema di numerazione posizionale in base 2.
Perché i computer usano il binario? Perché è più semplice costruire dispositivi fisici che lavorano con due stati, e meno soggetti a errori rispetto a quelli che dovrebbero distinguere tra 10 stati (come nel sistema decimale).
Nel corso della lezione, vedremo come si passa da numeri che usiamo tutti i giorni nel sistema decimale a numeri binari e viceversa.
Come si rappresentano i numeri nel sistema binario?
La rappresentazione dei numeri in binario si basa su potenze di 2. Ogni cifra in una posizione specifica ha un valore che è una potenza di 2. Partendo da destra, la prima cifra rappresenta \( 2^0 \), la seconda \( 2^1 \), la terza \( 2^2 \), e così via.
Nel numero binario 1011, il "1" più a destra rappresenta \( 2^0 \), il successivo "1" rappresenta \( 2^1 \), il "0" rappresenta \( 2^2 \) (che però non conta perché moltiplicato per zero), e il "1" più a sinistra rappresenta \( 2^3 \).
Ogni cifra in un numero binario è chiamata "bit", che è l'abbreviazione di "binary digit".
Quindi, per convertire un numero binario in decimale, dobbiamo semplicemente sommare le potenze di 2 corrispondenti alle posizioni dei bit che sono impostati a 1.
Conversione da binario a decimale
Per convertire un numero da binario a decimale, dobbiamo fare un'operazione di somma delle potenze di 2 che corrispondono ai bit impostati a 1.
Prendiamo il numero binario 1011. Per convertirlo in decimale facciamo la seguente operazione: \( 1 \times 2^3 + 0 \times 2^2 + 1 \times 2^1 + 1 \times 2^0 = 8 + 0 + 2 + 1 = 11 \). Quindi, 1011 in binario corrisponde a 11 in decimale.
Per convertire un numero binario in decimale, sommiamo le potenze di 2 corrispondenti ai bit a 1.
E' importante ricordarsi di iniziare sempre dal bit più a destra, che rappresenta la potenza di 2 più bassa (che è \( 2^0 \), cioè 1).
Conversione da decimale a binario
Convertire un numero da decimale a binario richiede che si trovi la combinazione di potenze di 2 che sommate danno il numero decimale che vogliamo convertire.
Per convertire un numero decimale in binario, dividiamo il numero per 2 e teniamo traccia del resto, continuando con la divisione fino a quando non otteniamo 0.
Per convertire il numero decimale 13 in binario, procediamo come segue: 13 diviso 2 è 6 con resto 1, 6 diviso 2 è 3 con resto 0, 3 diviso 2 è 1 con resto 1, e infine 1 diviso 2 è 0 con resto 1. Scrivendo i resti in ordine inverso otteniamo 1101.
Questa operazione può essere eseguita facilmente su carta e è il metodo fondamentale che i computer utilizzano per lavorare con i numeri.
Importanza del sistema binario nella tecnologia
Il sistema binario è il cuore dell'informatica e della tecnologia moderna. Senza di esso, non avremmo la potente elaborazione dei dati che permette ai nostri computer, smartphone e altri dispositivi di funzionare.
Il modo in cui il binario viene utilizzato non si limita alla rappresentazione dei numeri. Viene impiegato anche nella rappresentazione di testi, immagini, suoni e quasi qualsiasi altro tipo di dato che si possa immaginare.
Il testo che stai leggendo è codificato in binario all'interno del computer o del dispositivo da cui accedi a questa lezione.
Con la comprensione del sistema binario, abbiamo la base per esplorare concetti più avanzati come l'aritmetica binaria, la logica booleana e l'architettura dei computer.
Rappresentazione binaria dei numeri con la virgola
La rappresentazione dei numeri con la virgola (o numeri reali) nel sistema binario avviene attraverso la notazione in virgola fissa o in virgola mobile. Mentre per i numeri interi abbiamo visto che ogni bit rappresenta una potenza di 2, nei numeri con la virgola dobbiamo gestire anche la parte decimale.
Virgola Fissa
Nel metodo della virgola fissa, scegliamo un punto fisso nel numero (non necessariamente dopo il bit più a destra) che divide la parte intera dalla parte frazionaria. La posizione della virgola è fissa e predefinita.
Nella virgola fissa, i bit a sinistra della virgola rappresentano valori interi (potenze positive di 2), mentre i bit a destra rappresentano frazioni (potenze negative di 2).
Consideriamo il numero binario a 8 bit '1011.1101' con virgola fissa. Qui '1011' rappresenta la parte intera e '1101' la parte frazionaria. La parte intera è \(1 \times 2^3 + 0 \times 2^2 + 1 \times 2^1 + 1 \times 2^0 = 11\). La parte frazionaria è \(1 \times 2^{-1} + 1 \times 2^{-2} + 0 \times 2^{-3} + 1 \times 2^{-4} = 0.5 + 0.25 + 0.0625 = 0.8125\). Quindi, il numero totale è 11.8125 in decimale.
Tuttavia, il metodo a virgola fissa ha dei limiti: il numero e la posizione dei bit destinati alla parte frazionaria sono fissi, limitando la gamma di valori e la precisione che possiamo rappresentare.
Virgola Mobile
La virgola mobile è molto più flessibile e è lo standard utilizzato in informatica per rappresentare i numeri reali, in quanto permette di rappresentare un intervallo molto più ampio di valori con una precisione accettabile.
Nella rappresentazione in virgola mobile, un numero è diviso in tre parti: il segno, l'esponente e la mantissa. Il segno indica se il numero è positivo o negativo, l'esponente stabilisce la posizione della virgola binaria, e la mantissa rappresenta la precisione del numero.
Il formato standard per la virgola mobile è definito dall'IEEE 754. Ad esempio, nel formato a precisione singola (32 bit), 1 bit è per il segno, 8 bit per l'esponente e 23 bit per la mantissa.
Prendiamo il numero decimale 6.75. Prima lo convertiamo in binario come un numero intero, ottenendo '110.11'. Poi normalizziamo questo numero spostando la virgola binaria dopo il primo bit significativo e aggiustiamo l'esponente di conseguenza. Il numero normalizzato sarà '1.1011 x 2^2' perché abbiamo spostato la virgola di due posizioni a sinistra. '1.1011' è la mantissa, mentre '2' è l'esponente (che viene codificato in modo particolare secondo lo standard IEEE 754).
Il vantaggio della virgola mobile è che può rappresentare numeri molto grandi o molto piccoli con una precisione relativa che rimane costante su tutto l'intervallo di rappresentazione.
La comprensione della rappresentazione dei numeri con la virgola è essenziale per la programmazione, il calcolo scientifico e qualsiasi applicazione che richiede precisione e ampi intervalli numerici.
https://www.youtube.com/watch?v=pPt0W51OGYQ