Operatori la nivel de bit (binari) in limbajul PHP

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 BinariDenumirea (eng)Actiune Rezultata
$a & $bAndBitii care sunt setati in $a si $b vor fi setati in rezultatul final.
exemplu: 00100010 & 00100001 = 00100000
$a | $bOr (inclusive or)Biții care sunt setați fie în $a sau $b sunt setati in rezultatul final.
exemplu: 00100010 | 00100001 = 00100011
$a ^ $bXor (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 << $bShift leftDeplasarea 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 >> $bShift rightDeplasarea 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
~ $aNotBiț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.

byrev Written by:

Be First to Comment

    Leave a Reply

    Your email address will not be published. Required fields are marked *