Tel: (+39) 0934-586882

 

Blog Homepage

Mercoledì, 10 Febbraio 2016 00:00

Numeri binari ed indirizzi IP: i fondamentali

indirizzi IP

Nel mondo delle reti informatiche abbiamo sempre sentito parlare di indirizzi IP, ogni dispositivo li utilizza per comunicare in rete.
Gli indirizzi IP sono rappresentati da una sequenza di numeri raggruppati in 4 terzine come ad esempio 192.168.001.001 o 192.168.1.1 con omissione degli zeri nelle ultime due terzine.

Per comprendere cosa si cela dietro questo formato numerico dobbiamo introdurre il concetto di numerazione binaria.

Per poter ragionare in un sistema binario, e non sul decimale a cui siamo abituati (numeri da 0 a 9), dobbiamo utillizzare soltanto due cifre simboliche: 0 e 1. Ebbene sì, i calcolatori riconoscono solo due numeri.

Ogni numero, del classico sistema decimale, può essere rappresentato nel sistema binario, utilizzando una sequenza composta da sole due cifre.

Considerando l'indizzo IP citato pocanzi, andiamo ad analizzarne la struttura.

192.

168.

1.

1

11000000

10101000

00000001

00000001

ic arrow drop down 48px-128

ic arrow drop down 48px-128

ic arrow drop down 48px-128

ic arrow drop down 48px-128

Un byte= 8 bit

 

 

 

4 byte = 32 bit

 

Nel sistema decimale, ogni cifra all'interno del numero assume un peso differente in ragione della posizione, ad esempio possiamo esprimere il numero 168 come somma di prodotti, in particolare: (1x100)+(6x10)+(8x1). Tale sistema è basato sulle potenze in base dieci, di seguito una tabella esplicativa:

Posizione III II I
Potenza di 10
102 101 100
Valore associato alla potenza
100 10 1
Cifra 1 6 8

 

Per cui la cifra in posizione I ha peso unitario, la cifra in posizione II ha peso 10 volte maggiore rispetto alla precedente e la cifra in posizione III ha peso 100 volte maggiore rispetto alla I.

Il sistema binario è invece basato sulle potenze in base due, in particolare l'IP è composto da 4 gruppi di 8 bit, per cui possiamo seguire lo stesso ragionamento considerando una stringa di 8 cifre (1 byte):

Posizione VIII VII VI V IV III II I
Potenza di 2 27 26 25 24 23 22 21 20
Valore associato alla potenza
128 64 32 16 8 4 2 1
Cifra 1 0 1 0 1 0 0 0

 

La somma dei prodotti tra cifra e valore associato alla potenza restituisce il valore decimale:

(0x1)+(0x2)+(0x4)+(1x8)+(0x16)+(1x32)+(0x64)+(1x128)= 168

Ma come facciamo a passare da numeri decimali a numeri binari?

Vediamolo con un esempio numerico, convertiamo 168 dal sistema decimale al sistema binario.

Nella seguente tabella sono riportati: nella prima riga i valori delle potenze in base 2, nella seconda riga delle differenze e nella terza riga le cifre binarie

Valore decimale 128 64 32 16 8 4 2 1
Differenza 168-128=40 - - - - - - -
Cifra binaria 1 - - - - - - -

 

Per individuare la prima cifra binaria (VIII posizione) dobbiamo confrontare il numero da convertire (168) con il valore decimale più alto disponibile (128). Se tale numero è maggiore allora inseriremo 1 come cifra binaria, in caso contrario inseriremo 0.

Per determinare la cifra in posizione VII calcoliamo la differenza tra il valore decimale da convertire e 128, la confrontiamo con 64, se tale differenza è maggiore inseriamo 1 come cifra, in caso contrario inseriamo 0.
Nella seconda riga abbiamo effettuato la differenza ottenendo 40 come risultato, tale valore è minore di 64 per cui inseriamo uno 0 in corrispondenza della VII posizione.

Valore decimale 128 64 32 16 8 4 2 1
Differenza 168-128=40 - - - - - - -
Cifra binaria 1 0 - - - - - -

 

Procediamo con il calcolo della cifra in VI posizione confrontando 40 con 32. Quindi inseriamo 1 in quanto 40 è maggiore di 32.

Valore decimale 128 64 32 16 8 4 2 1
Differenza 168-128=40 - 40-32=8 - - - - -
Cifra binaria 1 0 1 - - - - -

 

Procediamo con il calcolo della cifra in V posizione confrontando 8 con 16. Quindi inseriamo 0 in quanto 8 è minore di 16.

Valore decimale 128 64 32 16 8 4 2 1
Differenza 168-128=40 - 40-32=8 - - - - -
Cifra binaria 1 0 1 0 - - - -

 

Procediamo con il calcolo della cifra in IV posizione confrontando 8 con 8. Quindi inseriamo 1 in quanto 8 è uguale ad 8.

Valore decimale 128 64 32 16 8 4 2 1
Differenza 168-128=40 - 40-32=8 - 8-8=0 - - -
Cifra binaria 1 0 1 0 1 - - -

 

Procediamo con il calcolo della cifra in III posizione confrontando 0 con 4. Quindi inseriamo 0 in quanto 0 è minore di 4.

Valore decimale 128 64 32 16 8 4 2 1
Differenza 168-128=40 - 40-32=8 - 8-8=0 - - -
Cifra binaria 1 0 1 0 1 0 - -

 

Procediamo con il calcolo della cifra in II posizione confrontando 0 con 2. Quindi inseriamo 0 in quanto 0 è minore di 2.

Valore decimale 128 64 32 16 8 4 2 1
Differenza 168-128=40 - 40-32=8 - 8-8=0 - - -
Cifra binaria 1 0 1 0 1 0 0 -

 

Procediamo con il calcolo della cifra in I posizione confrontando 0 con 1. Quindi inseriamo 0 in quanto 0 è minore di 1.

Valore decimale 128 64 32 16 8 4 2 1
Differenza 168-128=40 - 40-32=8 - 8-8=0 - - -
Cifra binaria 1 0 1 0 1 0 0 0

 

In definitiva il numero decimale 168 nel sistema binario è esprimibile nel seguente modo: 10101000

In conclusione, quindi, ogni terzina dell'indirizzo IP può assumere valori decimali variabili da 0 a 255.

Valore decimale 255 1 0
Valore binario 11111111 00000001 00000000

 

 

Si ringrazia la Dott.ssa Cristina Di Pietra per la fattiva collaborazione prestata per la redazione del presente articolo.

Pubblicato in Blog