PHP kézikönyv
Előző
11.
Fejezet.
Operátorok
Következő
A bitorientált operátorok teszik lehetővé, hogy egész típusú számokon belül bizonyos biteket beállítsunk, vagy lefedjünk (maszkolás).
Ha viszont az opertáron mindkét oldalán sztring típusú változó áll, akkor a bitorientált operátorok a sztringek karakterein dolgoznak úgy, hogy a karakterek ASCII kódjain végzik el a műveletet, és az eredményül adódó számot ASCII kóddal megadott karakternek értelmezi.
?php echo 12 ^ 9; / / '5 '-öt ír ki echo "12 "^ "9"; / / kiírja a visszaperjel karaktert (ASCII #8), mert / / ('1' (ASCII #49)) ^ ('9 '(ASCII #57)) = (ASCII #8) echo "hallo" ^ "hello"; / / eredmény: #0 #4 #0 #0 #0 / / 'a' ^ 'e '= #4?
Táblázat 11-3.
Bitorientált operátorok
Példa
Név
Eredmény
És
Ott lesz '1' az eredményben, ahol $a és $b mindegyikében az a bit '1 '-es.
Minden más biten '0'.
Vagy
Ott lesz '1' az eredményben, ahol $a és $b közül legalább az egyik azon a bitje '1 '-es.
Minden más biten '0'.
Kizáró vagy
Ott lesz '1' az eredményben, ahol $a és $b közül csakis pontosan az egyikben '1 'állt.
Minden más biten '0'. [Más közelítésben ott lesz '1' az eredményben, ahol különböző bitek álltak $a-ban és $b-ben; megint más közelítésben $a azon bitjei invertálódnak, amely helyeken $b-ben '1 'áll]
Nem
$a összes bitjét invertálja
Eltolás balra
$a bitjeit $b számú bittel balra tolja (minden bitnyi eltolás 2-vel való szorzást jelent [amíg el nem fogynak a bitek, utolsó helyen előjelbit van?!])
Eltolás jobbra
$a bitjeit $b számú bittel jobbra tolja (minden bitnyi eltolás 2-vel való egész-osztást jelent. [Vigyázz, negatív számot inkább ne tolj jobbra!])
Előző
Tartalom
Következő
Hozzárendelő operátorok
Fel
Összehasonlító operátorok