Sistema binario

I sistemi di numerazione

Tra tutti i codici, iniziamo a considerare quello che usiamo per rappresentare i numeri. Un sistema di numerazione è un modo di esprimere e rappresentare i numeri attraverso un insieme di simboli. In particolare, un generico sistema di numerazione è un codice costituito da:

  1. Un insieme finito di simboli , (detti cifre) distinti gli uni dagli altri;
  2. Un insieme di regole che permettono di associare a un valore numerico una precisa configurazione di cifre e viceversa;
  3. Un insieme di algoritmi che consentono di eseguire le operazioni fondamentali.

Mentre per gli esseri umani è stato del tutto naturale utilizzare il numero 10 come base, poiché abbiamo dieci dita, per il calcolatore questa base risulta piuttosto scomoda, facendo preferire la base due, limitando l’insieme delle cifre a 0 e 1. Ciò porta a numerosi vantaggi:

  • Efficienza I calcoli con numeri binari vengono effettuati da una macchina più rapidamente.
  • Economicità La semplicità di funzionamento dei dispositivi a due stati induce a un minor costo e risulta la scelta più naturale equiparando lo 0 al “circuito spento” e 1 al “circuito acceso”.
  • Affidabilità L’utilizzo di due soli numeri garantisce la massima separazione tra gli stati e riduce al minimo la possibilità di errori. Vediamo in questa tabella, come si “conta” in base due:

 

In questo sistema non ha senso parlare di decine, centinaia, migliaia; piuttosto, occorre pensare in termini di

coppie, quaterne, ottuple…

In sostanza, ogni posizione esprime una potenza del 2 . È facile notare che la rappresentazione in base 2 è molto più ”verbosa” di quella in base 10: il numero 15 richiede due soli simboli in base 10 e ben quattro in base 2.

L’idea fondamentale alla base della rappresentazione dell’informazione è il BIT (Binary digiT), che costituisce l’unità minimale di rappresentazione in quanto può rappresentare uno di due valori: 0 oppure 1. La semplicità del BIT ne consente una facile e naturale rappresentazione in un calcolatore elettronico. Potendo assumere solo i valori 0 e 1, le uniche informazioni rappresentabili da un BIT sono quelle a due valori. Ad esempio, con un BIT possiamo rappresentare:

 

stati binari

Non potremmo invece rappresentare le stagioni. Questo tipo d’informazione ha infatti un dominio di quattro elementi: primavera, estate, autunno e inverno. In questi casi possiamo combinare più BIT allo scopo di rappresentare informazioni più complesse Ad esempio, per rappresentare una stagione sono sufficienti 2 BIT:

 

rappresentazione di quattro stati in binario

Per rappresentare un giorno della settimana 2 BIT non bastano, ma 3 sono sufficienti.

In generale, N BIT possono assumere 2N combinazioni diverse, ognuna delle quali può essere associata a un valore che una specifica informazione può assumere. Particolarmente importanti sono le sequenze di 8 BIT, comunemente chiamate BYTE.

Con un BYTE possiamo rappresentare informazioni con dominio di al più 28 = 256 elementi. Generalmente, informazioni più complesse (ovvero con dominio di più di 256 elementi) vengono rappresentate con successioni di BYTE. Quindi, in informatica difficilmente si troveranno informazioni codificate in 10 BIT, preferendo in questi casi l’uso di 2 BYTE (ovvero 16 BIT). Multipli:

  • Nibble : 4 bit . Equivale a una singola cifra esadecimale;
  • Byte : 8 bit. Ha come sinonimo il termine ottetto, ma è caduto un po’ in disuso;
  • Word : dipende dal contesto. Nel caso della programmazione ha sempre il valore di 16 bit , ma nel caso delle architetture di sistemi indica l’unità minima di informazione utilizzabile – i moderni PC usano word di 64 byte, mentre un vecchio Commodore 64 usava word a soli 8 bit.

Questi non sono sufficienti a rapresentare data l’enorme quantità di memoria oggi a disposizione nei nostri computer, ci occorrono ulteriori multipli per misurarne correttamente le dimensioni. E qui le cose si complicano un po’ perché esistono DUE tipologie di multipli del byte . Il primo sistema è basato sul noto Sistema Internazionale che utilizziamo per misurare lunghezze, pesi e via dicendo. I multipli si basano sulle potenze del 10 quindi:

  • 1000 bit formano un kilobit (abbreviato in Kbit o Kb),
  • 1000 byte formano un Kilobyte (KB, si noti la B maiuscola per differenziarlo dal kilobit),
  • 1000 Kilobit formano un Megabit .

Ma nel ramo informatico, specie nella sezione più vicina all’hardware, si usa molto di più la potenza del due. Per cui, esiste un’altra famiglia di multipli che fanno riferimento alla Commissione Elettrotecnica Internazionale che prevedono per un kilobyte non 1000, bensì 1024 byte. Per distinguerlo dal precedente, viene chiamato kibibit (contrazione di kilo binary byte ed ha per simbolo KiB) . Allo stesso modo un Mebibyte è formato da 1024 Kibibyte e via così.

Conversione da base 2 a base 10

Per convertire un numero da base 2 a base 10 si segue il seguente algoritmo: Si moltiplica ciascuna cifra binaria a partire da destra per la corrispondente potenza di 2 e si sommano i prodotti ottenuti.

conversione  binario decimale

Oppure possiamo scrivere sopra ogni cifra il suo peso e sommare i pesi sopra i numeri 1

conversione decimale binario

Conversione da decimale a binario

La conversione tra sistema decimale e sistema binario si può svolgere in vari modi. Vediamo quello detto  “metodo delle divisioni successive”. Funziona così:

  1. Dividere il numero (in base decimale) da convertire per 2;
  2. Annotare il resto (deve essere 0 oppure 1);
  3. Ripetere i passi 1-2 fino a che il quoziente non sia 0;
  4. Riscrivere i vari resti in ordine contrario alla successione iniziale.

La sequenza di cifre composta da 0 e 1 rappresenta il numero iniziale (base decimale) in codice binario. In realtà, questo sistema è talmente generale che può essere utilizzato per convertire in una base qualsiasi, non solo la base due.

da decimale a binario

Un altro metodo è quello di “bucare il nastro”, è molto più veloce per i numeri piccoli: 

  1. Per prima cosa scrivete, da DESTRA a SINISTRA, la sequenza di potenze del due fino a superare il numero da convertire (potete anche fare una tabella);
  2. Partendo dal numero più a SINISTRA, chiedetevi se potete sottrarre quella potenza del due dal nonstro numero.
  3. Se non è possibile, scrivete “0” sotto la potenza e passate alla potenza del due successiva; Se possibile, sottraete la potenza del due dal numero, scrivete “1” sotto la potenza del 2 e passate alla potenza del due successiva;
  4. Ripetere i passi 2-3 sinché il numero da convertire è 0;
  5. La sequenza dei numeri, presa in ordine, dà il numero convertito.

Ad esempio, convertiamo 150 in binario.

128 64 32 16 8 4 2 1.  

La più grande potenza di 2 contenuta in 150 è 128: si scrive un 1 SOTTO A 128

Si SOTTRAE 128 dal numero decimale, 150 -128 = 22.

Si passa alla potenza successiva decrescente di 2. 64 è contenuto in 22? No, quindi si scrive 0 sotto il 64. Si continua in questo modo finchè non si trova un numero che può stare nel 22.

128 64 32 16 8 4 2 1 

1 0 0 1 0 

16 può stare nel 22, così sotto il 16 si scrive 1. Si sottrae 16 dal 22. 22 – 16 = 6 8 non sta nel 6, così sotto si scrive 0.

Si continua finché non si raggiunge la fine delio schema. Segnando un 1 sotto ogni numero che è contenuto nel nuovo numero e uno 0 sotto quello che non ci sta.

128 64 32 16 8 4 2 1

 1    0   0    1  0 1 1 0

Please follow and like us:

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Commenti recenti

Working Hours

  • Monday9am - 6pm
  • Tuesday9am - 6pm
  • Wednesday9am - 6pm
  • Thursday9am - 6pm
  • Friday9am - 6pm
  • SaturdayClosed
  • SundayClosed
Latest Posts

Teachers

Facebook
Twitter
LinkedIn
Contatti

Commenti recenti

Wordpress Social Share Plugin powered by Ultimatelysocial
error

Enjoy this blog? Please spread the word :)

%d blogger hanno fatto clic su Mi Piace per questo: