PHP i MySQL dla każdego
Tabela 2.6. Operatory bitowe | ||
Operator |
Wykonywane działanie |
Przykład |
& |
iloczyn bitowy AND |
a 8 b |
1 |
suma bitowa OR |
a | b |
- |
negacja bitowa NOT |
-a |
bitowa różnica symetryczna X0R |
a * b | |
» |
przesunięcie bitowe w prawo |
a » n |
« |
przesunięcie bitowe w lewo |
a « n |
Listing 2.15. Skrypt wykonujący operacje bitowe |
<html>
<head>
<title>Przykładowa strona</title> </head>
<body>
<?php
/*1*/ $x = 179 & 38:
1*2*1 echo ($x):echoC<br>n): 1*3*1 $y - $x | 65:
/*4*/ echo ($y):echo("<br>");
/*5*/ $y = $x * 118;
/*6*/ echo ($y):echo("<br>''); 1*1*1 ty = $y « 1:
1*3*1 echo ($y):echo("<br>"):
?>
</body>
</html>
W linii 1. zmiennej x przypisywana jest wartość wynikająca z działania 179 & 38. Ponieważ jest to operacja AND, uzyska się wartość, w której włączone będą bity, włączone zarówno w pierwszym, jak i drugim operandzie. W celu lepszego zrozumienia tej operacji warto rozpisać obie wartości w postaci dwójkowej. 179 dwójkowo to 10110011, natomiast 38 dwójkowo to 00100110. Operacja AND będzie zatem miała postać:
10110011 (179)
00100110 (38) 00100010 (34)
Wynikiem jest 34, i ta wartość wyświetlana jest w 2. linii skryptu. W linii 3. wykonywana jest operacja OR na wartości zapisanej zmiennej x i liczbie 65. Zmienna x ma wartość wynikającą z poprzedniego działania, czyli 34, stąd po rozpisaniu działania na poszczególne bity otrzymamy operację:
00100010 (34)
01000001(65) 01100011(99)