Heim >Backend-Entwicklung >PHP-Tutorial >[PHP] Grundlegende Verwendung von bitweisem AND & oder |

[PHP] Grundlegende Verwendung von bitweisem AND & oder |

little bottle
little bottlenach vorne
2019-04-16 15:26:593574Durchsuche

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

2. Bestimmen Sie, ob die dritte Ziffer ein Code zum Aktivieren des automatischen Speicherns ist


($userStatus & pow(2,3-1))!=0

3.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)

Der ursprüngliche Wert ist 0001 und das dritte Bit ist auf 1,0001 gesetzt. 0100 ist 0101

5 >

$userStatus ^ pow(2,3-1) 0101 ^ 0100 为0001

[Empfohlener Kurs:
PHP-Video-Tutorial
]

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen