Opérateurs sur les bits : compréhension
Bonjour,
Je suis en train de découvrir les opérateurs sur les bits. J'ai bien compris le &, le |, et le ^. Mais je bloque sur le ~ (not). La doc précise Les bits qui sont positionnés à 1 dans $a sont positionnés à 0, et vice-versa.
Je vais quelques tests pour comprendre comment cela fonctionne :
Code:
1 2 3 4 5
|
$a = 1; // soit 01 en binaire
$b = 2; // soit 10 en binaire
echo ~ $a;
echo ~ $b; |
Je m'attendais à avoir :
Code:
1 2 3 4 5 6 7 8 9 10
|
// pour ~ $a :
4294967294
// soit en binaire 11111111111111111111111111111110
// puisque ma valeur de départ est 00000000000000000000000000000001
// pour ~ $b :
4294967293
// soit en binaire 11111111111111111111111111111101
// puisque ma valeur de départ est 00000000000000000000000000000010 |
Or j'obtiens -2 et -3 :aie:
Je n'arrive pas à comprendre ce résultat. Est-ce à cause d'une mauvaise interprêtation de la doc ? D'une mauvaise config PHP ? d'Obiwan Kenobi qui s'est fait racheter par Mickey ?
Bref je me sens équivalent à un 0 sur ce coup... J'espère que vous pourrez m'aider à passer à 1 !
Merci pour vos conseils :)