Operatory bitowe

Założenie: Zrozumieć działanie operatorów bitowych w PHP i poznać ich podstawowe zastosowania.

Krok po kroku:

  1. Operatory bitowe AND (&): Ten operator porównuje bity dwóch liczb. Jeśli oba bity są 1, wynikowy bit jest 1, w przeciwnym razie 0.
  2. Przykład:
    
    $a = 10; // binarnie: 1010
    $b = 4;  // binarnie: 0100
    $c = $a & $b; // wynik: 0 (binarnie: 0000)
    echo $c; // Wyświetla 0
    				

    Wyjaśnienie: 1010 & 0100 = 0000

  3. Operatory bitowe OR (|): Jeśli przynajmniej jeden z bitów jest 1, wynikowy bit jest 1. Tylko gdy oba bity są 0, wynikowy bit jest 0.
  4. Przykład:
    
    $a = 10; // binarnie: 1010
    $b = 4;  // binarnie: 0100
    $c = $a | $b; // wynik: 14 (binarnie: 1110)
    echo $c; // Wyświetla 14
    				

    Wyjaśnienie: 1010 | 0100 = 1110

  5. Operator bitowy XOR (^): Jeśli bity są różne, wynikowy bit jest 1. Jeśli bity są takie same, wynikowy bit jest 0.
  6. Przykład:
    
    $a = 10; // binarnie: 1010
    $b = 4;  // binarnie: 0100
    $c = $a ^ $b; // wynik: 14 (binarnie: 1110)
    echo $c; // Wyświetla 14
    				

    Wyjaśnienie: 1010 ^ 0100 = 1110

  7. Operator bitowy NOT (~): Odwraca wszystkie bity. 0 staje się 1, a 1 staje się 0.
  8. Przykład:
    
    $a = 10; // binarnie: 1010
    $c = ~$a; // wynik: -11 (w zależności od systemu)
    echo $c; // Wyświetla -11 (lub inną wartość zależną od systemu)
    				

    Wyjaśnienie: ~1010 (zależy od reprezentacji liczb w systemie)

  9. Przesunięcie bitowe << i >>: Przesuwa bity w lewo (<<) lub w prawo (>>).
  10. Przykład:
    
    $a = 10; // binarnie: 1010
    $b = $a << 2; // przesunięcie o 2 bity w lewo (101000) - wynik 40
    $c = $a >> 1; // przesunięcie o 1 bit w prawo (101) - wynik 5
    echo "Przesunięcie w lewo: " . $b . "\n"; // Wyświetla 40
    echo "Przesunięcie w prawo: " . $c; // Wyświetla 5
    				

    Wyjaśnienie: Przesunięcie w lewo mnoży przez 2n, a w prawo dzieli przez 2n (gdzie n to liczba przesunięć).

Ten przykład pokazuje podstawowe operatory bitowe w PHP. Zachęcamy do dalszego zgłębiania tematu i eksperymentowania z różnymi kombinacjami operatorów!

Dodaj komentarz 0

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