Moin!
Danke für die Erklärung.
Wie aber sonst kann ich ein Vergleich auf Bitebene machen?
Genau so.
Aber es ist ein Unterschied (nämlich in der notwendigen Integerzahl $b), ob du ein AND mit der Zahl 10 machst, oder mit einer Zahl, deren zehntes Bit gesetzt ist - das ist nämlich die Integerzahl 1024.
das PHP-Manual sagt nämlich:
Beispiel Erklärung
$a & $b Bits, die in $a und $b gesetzt sind werden gesetzt.
Ist korrekt.
Aber wenn du 3333(dez) mit 10(dez) AND-verknüpfst, dann passiert:
110100000101
000000001010
------------
000000000000 = 0 (dez) = false
Die Verknüpfung von 3333 und 9:
110100000101
000000001001
------------
000000000001 = 1(dez) = true
Ich muss doch dann keine Binärzahl angeben, oder?
Du mußt die Dezimalzahl angeben, deren Bit passend gesetzt ist. Beim zehnten Bit eben 2^10 = 1024
110100000101
010000000000
------------
010000000000 = 1024(dez) = true
Der o.g. Vergleich funktioniert übrigens mit gewünschtem Ergebnis mit JavaScript.
Code bitte! Dann siehst du den Unterschied wahrscheinlich.
- Sven Rautenberg