In programare, operatorii binari sunt utilizați pentru a efectua operații la nivel de biți pe operanzi. Operatorii sunt mai întâi convertiți în biți și apoi calculul este efectuat pe operanzi (acest aspect oricum nu este vizibil pentru programator, registrii interni ai procesorului deja stocheaza informatia la nivel binar!). Operațiile matematice, cum ar fi adunarea, înmulțirea, scăderea, etc. pot fi efectuate la nivelul binar pentru o prelucrare mai rapidă. În limbajul PHP, operatorii care lucrează la nivel de biți sunt urmatorii:
Operatori Binari | Denumirea (eng) | Actiune Rezultata |
---|---|---|
$a & $b |
And | Bitii care sunt setati in $a si $b vor fi setati in rezultatul final. exemplu: 00100010 & 00100001 = 00100000 |
$a | $b |
Or (inclusive or) | Biții care sunt setați fie în $a sau $b sunt setati in rezultatul final. exemplu: 00100010 | 00100001 = 00100011 |
$a ^ $b |
Xor (exclusive or) | Biții care sunt setați în $a sau $b dar nu ambele variabile sunt setati in rezultatul final. exemplu: 00100010 ^ 00100001 = 00000011 |
$a << $b |
Shift left | Deplasarea biților $a cu $b pași spre stânga (fiecare pas înseamnă “multiplicarea cu doi”) ex.: 00000010 (2) << 00000001 (1) = 00000100 (4) ~ 2 x 2 = 4 |
$a >> $b |
Shift right | Deplasarea biților $a cu $b pași spre dreapta (fiecare pas înseamnă “divizarea cu doi”) ex.: 00000010 (2) >> 00000001 (1) = 00000001 (1) ~ 2 / 2 = 1 |
~ $a |
Not | Biți din variabila $a vor fi inversati adica cei cu valoare zero (0) vor deveni un (1) si invers exemplu: ~ 00100010 = 11011101 |
Stiati ca?
Operațiile de înmulțire sau de imparțire cu 2 sunt mult mai rapide folosind acesti operatori !? O deplasare la stânga a biților << cu un bit este echivalentă cu înmulțirea cu 2 și deplasarea spre dreapta >> cu un bit este similară cu impărțirea la 2.
Be First to Comment