Ich benutze folgenden Code zum herausfinden, ob in $habe (mindestens) die Bits gesetzt sind, welche $soll verlangt:
Das druckt 'ko' obwohl es 'ok' sein sollte.
Wenn ich $soll = 0x40000000 setze (oder eine andere Zahl, dessen erstes Bit in der ersten Hexziffer nicht gesetzt ist), funktioniert der Vergleich wie erwartet ok.
Wo liegt der Bug? Danke für Hinweise.
(PHP version 5.0.3, Windows XP)
PHP Code:
$soll = 0x80000000; // verlangt: mindestens erstes bit gesetzt
$habe = 0xF0000000; // erste 4 bits gesetzt, sollte ok sein
$ok = ($habe & $soll) == $soll;
echo $ok ? 'ok' : 'ko';
Wenn ich $soll = 0x40000000 setze (oder eine andere Zahl, dessen erstes Bit in der ersten Hexziffer nicht gesetzt ist), funktioniert der Vergleich wie erwartet ok.
Wo liegt der Bug? Danke für Hinweise.
(PHP version 5.0.3, Windows XP)
Comment