Heim >Backend-Entwicklung >PHP-Tutorial >[PHP] Grundlegende Verwendung von bitweisem AND & oder |
Bitweise UND:
0&0=0; 1&1=1;
Bitweise ODER:
0|0=1; 1; 1|1=1;
Bitweises XOR, auf der Basis von OR, 1 1 ist auch 0:
0^0=1; 1^0=1; =0;
1. Ein int-Feld, das eine Dezimalzahl speichert, zum Beispiel 5
Dann ist die in Binärzahl umgewandelte Zahl 101. Ich definiere sie selbst und zähle von links nach rechts, 🎜>Die Die erste Ziffer ist 1, was bedeutet, dass die automatische Weiterleitung einer bestimmten Funktion aktiviert ist
Die zweite Ziffer ist 0, was bedeutet, dass das automatische Löschen deaktiviert ist
Die dritte Ziffer ist 1, was bedeutet, dass das automatische Speichern aktiviert ist
($userStatus & pow(2,3-1))!=03.pow ist eine exponentielle Ausdrucksfunktion, 2 hoch 2. Bei der Konvertierung in eine Binärzahl ist sie 0100 . Das bitweise UND von 0101 und 0100 ist 0100, was 0 entspricht, ist wahr
4. Wenn Sie es auf 1 setzen möchten, lautet der Code
$userStatus | pow(2,3-1)
5 >
$userStatus ^ pow(2,3-1) 0101 ^ 0100 为0001
function setStatus($source,$flag,$value){ if (intval($value) == 1 || strcasecmp($value, 'on') == 0) { $value = 1; } else { $value = 0; } $status = pow(2, $flag - 1); $oldStat = (($source & $status) != 0); if ($oldStat == $value) { return $source; } if ($value) { $source |= $status; } else { $source ^= $status; } return $source; } //001 转成 101 var_dump(setStatus(1,3,'on'));//int(5) //1101 转成 0101 var_dump(setStatus(13,4,0));//int(5)
Das obige ist der detaillierte Inhalt von[PHP] Grundlegende Verwendung von bitweisem AND & oder |. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!