PHP  »  Articoli  »  Programmazione Php 

Operatori bitwise in PHP

di: Claudio Garau     16 Ottobre 2008

In questo breve articolo si parlerà di come PHP fornisca degli strumenti per lavorare con concetti come gli operatori bitwise (operatori per l'alterazione dei bits) e la matematica binaria; data la scarsa simpatia che molti nutrono per i numeri e i calcoli, questo argomento viene spesso tralasciato, può però risultare molto utile ai fini della comprensione dei linguaggi di sviluppo, perché possedere qualche base relativa alla matematica binaria significa anche capire come pensano le macchine.

Matematica binaria: pensare in base 2

Non occorre dilungarsi eccessivamente per spiegare il concetto di matematica binaria; per convenzione le persone sono abituate ad effettuare calcoli su base decimale: abbiamo 10 numeri che vanno da 0 a 9 e tutte le cifre esistenti su questa scala si basano sulla combinazione di questi; per cui un numero casuale come "587" (5 = centinaia, 8 = decine, 7 = unità) non è altro che il risultato di:

(5 * 102) + (8 * 101) + (7 * 100) = 500 + 80 + 7

Ma immaginiamo che i numeri possano essere composti esclusivamente da due cifre, lo "0" e l'"1", in questo caso la base della nostra scala numerica sarebbe il 2 e non più il 10; per cui potremmo avere a che fare con cifre come "1101" o "1111"; per quanto possa sembrare strano, questi numeri hanno una corrispondenza su base 10 e quindi possono essere tradotti in cifre comunemente utilizzate per i consueti calcoli matematici. Facciamo un esempio:

1110 = (1 * 23) + (1 * 22) + (1 * 21) + (0 * 20) = 8 + 4 + 2 + 0 = 14

Seguendo la stessa logica avremo che il numero binario "1101" è pari a 13 e che "1111" è pari a 15; grazie al sistema a base 2 è possibile rappresentare tutte le cifre possibili utilizzando combinazioni costituite da due soli simboli.

Matematica binaria e bits

Per questa sua caratteristica di semplicità gli informatici hanno deciso di utilizzare la base 2 come fondamento per il linguaggio delle macchine che, come è noto, interpretano i dati sulla base dei concetti di VERO ("1" o TRUE) e FALSO ("2" o FALSE).

Vero e falso possono essere anche dei riferimenti ad uno stato, si pensi per esempio al bit che di per sé non è altro che la rappresentazione di "1" e "0" corrispondenti agli stati di On e Off, un concetto elaborato sulla base del fatto che ogni computer viene alimentato tramite la corrente elettrica; 8 bits formano un byte che ha un valore massimo di "255" ("11111111" in base 2) sempre basato sulla matematica binaria, infatti ad ognuno degli 8 bit è associato un valore:

  • 128 = (1 * 27);
  • 64 = (1 * 26);
  • 32 = (1 * 25);
  • 16 = (1 * 24);
  • 8 = (1 * 23);
  • 4 = (1 * 22);
  • 2 = (1 * 21);
  • 1 = (1 * 20).

La somma di questi valori è appunto 255; il valore massimo si ottiene soltanto se tutti e gli 8 bits del byte sono impostati su On ("1"), altrimenti il valore del byte diminuirà. Se per esempio il bit corrispondente a 128 è impostato su Off, avremo per il byte una cifra binaria pari a "01111111" che corrisponde a "127" su base decimale.

I valori che compongono i bytes e quindi i bits che li costituiscono sono manipolabili impostando questi ultimi su On o su Off, ciò può essere fatto utilizzando diversi strumenti, uno di questi sono gli operatori bitwise di PHP.

Guide PHP

Guida Yii Framework

Come creare applicazioni Web in modo semplice e veloce con il...

Guida Zend Framework

Diventate professionisti dello sviluppo Web. Zend Framework è lo...

Guida Applicazioni Facebook con PHP

Come realizzare un'applicazione per Facebook. Dalle basi della...

Altre guide

Newsletter @PHP

Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso PHP per Webmaster

11 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti