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

[PHP] Grundlegende Verwendung von bitweisem AND & oder |

little bottle
Freigeben: 2023-04-05 21:20:02
nach vorne
3562 Leute haben es durchsucht

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
Nach dem Login kopieren

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)
Nach dem Login kopieren

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
Nach dem Login kopieren

[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) 
  
Nach dem Login kopieren

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!

Verwandte Etiketten:
php
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage