Linguaggi e Programmazione per l’Informatica Musicale a cura di G.Finizio Numerazione Binaria Auto-istruzione 2
Numerazione binaria Il sistema digitale si basa sulla combinazione di stati logici che possono assumere le due forme elementari 0 e 1 che in termini elettrici, significano la presenza o meno di tensione. Dato che sono in gioco due sole cifre, il sistema verrà definito sistema binario e seguirà la stessa prassi che normalmente usiamo per il sistema decimale.
Numerazione binaria Nel sistema decimale la numerazione segue un criterio per noi intuitivo; si parte da 0 e si continua fino a 9… Una volta completata la prima successione si pone la prima cifra utile (1) a sinistra e si ricomincia… 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 … 19 …conclusa anche questa successione si pone a sinistra il n. 2 e si ricomincia…. 20 21 22 23 24 … 29 Con questo sistema è possibile identificare un numero infinito di cifre.
Numerazione binaria Nella numerazione con sistema binario si utilizza lo stesso metodo del sistema decimale, solo che le cifre in gioco sono solo due: “0” e “1”: 0 1 …poi si continua con due cifre…. 10 11 …e ancora con tre… 100 101 110 111 …quattro…. 1000 1001 1010 1011 1100 1101 1110 1111 …e così via.
Numerazione binaria Ecco i corrispettivi in sistema binario dei numeri da 0 a 9 decimale… Decimale Corrispettivo binario (clic per ogni cifra) 0 0 1 1 2 10 3 11 4 100 5 101 6 110 7 111 8 1000 9 1001
Numerazione binaria Nell’ambito informatico ogni singola cifra binaria (0 o 1) viene definita BIT. In genere però, i bit sono organizzati in BYTE. Il Byte è una sequenza di otto bit, quindi l’insieme di otto cifre binarie. Byte 0 1 1 1 1 0 0 1 Il Byte in alcuni ambiti viene identificato con il termine di “octet”; byte e octet quindi, sono la stessa cosa.
Numerazione binaria “parola dato” Byte = Data word Il byte rappresenta la parola dato (data word), cioè l’informazione elementare con cui i computer lavorano. Byte = Data word “parola dato” Ovviamente è possibile lavorare con un numero maggiore di bit (8 o 16 per esempio), e quindi con un numero maggiore di byte (2 o 4 byte) 2 Byte DWord = 16 Bit (double word) 4 Byte QWord = 32 byte (quad word)
Conversione binario/decimale Per convertire un numero binario nell’equivalente decimale è necessario fare alcune semplici operazioni: Ogni cifra del numero binario corrisponde ad una potenza di due; Si parte dalla cifra più a destra corrispondente a 20 (quindi 1), continuando verso sinistra in modo progressivo (21=2;22=4;23=8;fino ad arrivare nel caso del byte a 27=128: Numero binario 1 1 1 1 1 1 1 1 Ogni cifra binaria corrisponde ad una potenza di 2 27 26 25 24 23 22 21 20 Ogni potenza corrisponderà ad un numero univoco 128 64 32 16 8 4 2 1
Il numero binario 10011001 corrisponde in decimale a 153 Conversione binario/decimale A questo punto è sufficiente addizionare con le corrispettive potenze di due, i soli bit posti a 1. Facciamo un esempio: Convertire in decimale il numero binario 1 0 0 1 1 0 0 1 Numero binario 1 0 0 1 1 0 0 1 potenze di 2 27 26 25 24 23 22 21 20 128 64 32 16 8 4 2 1 Numeri corrispondenti Addizionare i soli numeri corrispondenti ai bit posti a 1 128 0 0 16 8 0 0 1 128+16+8+1= 153 Il numero binario 10011001 corrisponde in decimale a 153
Quindi 151 corrisponde in binario a 10010111 Conversione numerica La conversione inversa (decimale/binario) è un poco più complessa ma altrettanto semplice; Uno dei metodi consiste nel sottrarre il numero decimale di base e tutti i numeri ottenuti con le varie sottrazioni, con la potenza di 2 più vicina a tali numeri, fino ad arrivare ad 1 o 0. Se vogliamo ad esempio convertire in binario il numero 151 procederemo in questo modo: 151-128 = 23 23 – 16 = 7 7 – 4 = 3 3 – 2 = 1 1 La potenza di 2 più vicina a 151 è 128; per cui 151-128=23; proseguendo sottrarremo 23 alla potenza di 2 più vicina cioè 16 e otterremo 7; continuando sottrarremo 7 a 4 risultato 3, poi 3-2=1 e qui ci fermiamo. Tutti i bit corrispondenti alle potenze utilizzate saranno posti a 1 mentre quelli non utilizzati saranno posti a 0. 128 64 32 16 8 4 2 1 1 0 0 1 0 1 1 1 Quindi 151 corrisponde in binario a 10010111
Conversione numerica Per i più pigri comunque, c’è la possibilità di utilizzare la calcolatrice interna al sistema operativo nella modalità scientifica che prevede la possibilità di fare operazioni sia nel sistema decimale che in quello binario: Da capo Fine