crazyPower: Bitmuster; Fehler beim Vergleich

Beitrag lesen

Hallo,

ich bin etwas verwirrt. Ich habe folgenden Code:

$result=array("ZUGRIFF" => array(0=>3333));
print_r($result);
echo "<br>";
for ($i=0; $i<17; $i++){
   if($result['ZUGRIFF'][0] & $i){
      echo "$i: checked\n<br>";
   }
}

echo base_convert($result['ZUGRIFF'][0], 10, 2);

Und das hier als Ausgabe:
Array ( [ZUGRIFF] => Array ( [0] => 3333 ) )
1: checked
3: checked
4: checked
5: checked
6: checked
7: checked
9: checked
11: checked
12: checked
13: checked
14: checked
15: checked

110100000101

Eigentlich dürfte er doch in diesem Fall nur bei 0, 2, 8, 10, 11 ein "checked" bringen.

Die Bits 1, 3, 5, 6, 7, 9, 11, 12, 13, 14, 15 sind doch bei der Dezimalzahl 3333 garnicht gesetzt. Wenn sie gesetzt wären, müsste das die Dezimalzahl 64250 sein....

ein etwas verwirrter

cP