Ich versuche, mehr darüber in meinem Projekt zu lernen.
Ich habe das zur Zeit im Grunde genommen:
%Vor%Nun möchte ich etwas komplexere Dinge tun, was ich tun möchte, ist drei Flaggen wie folgt anzuwenden:
%Vor% Und dann die Flags 0x1
und 0x2
entfernen? Ich dachte, ich könnte etwas wie bitweises NOT (und bitweises AND, um es anzuwenden) anwenden:
Offensichtlich bleiben sie dort oder so oder so, wenn ich nachschaue.
Ich weiß auch nicht, wie man überprüft, ob sie NICHT in den Bit-Flags existieren (damit ich nicht überprüfen kann, ob mein vorheriger Code funktioniert), wäre es etwa so?
%Vor%Ich kann keine Ressourcen aus meinen kürzlich durchgeführten Suchanfragen finden. Ich bin bereit, dies zu lernen, um andere zu unterrichten. Ich bin wirklich interessiert. Ich entschuldige mich, wenn das verwirrend oder einfach ist.
Und die zwei davon entfernen? ich dachte Ich könnte so etwas tun:
%Vor%um diese zwei Flags zu entfernen, aber anscheinend bleiben sie dort oder so oder so.
Das ist der richtige Weg, um Flags zu entfernen. Wenn Sie printf("%d\n", flags)
nach dieser Zeile eingeben, sollte die Ausgabe 4
sein.
Ich weiß auch nicht, wie ich das überprüfen kann Sie existieren NICHT in der Bit-Flagge (so Ich kann nicht überprüfen, ob mein vorheriger Code funktioniert), wäre es so etwas wie das?
%Vor%
Nein:
%Vor%BEARBEITEN:
Um das Vorhandensein mehrerer Flags zu testen:
%Vor%Um auf das Fehlen mehrerer Flags zu testen, vergleichen Sie einfach wie zuvor mit 0:
%Vor%Ich bin mir nicht sicher, warum Sie denken, dass der Löschvorgang nicht funktioniert.
%Vor%ist der richtige Weg dazu. Die Operation zum Überprüfen, ob ein Bit nicht gesetzt ist, lautet:
%Vor%Der, den Sie haben:
%Vor%ist wahr, wenn ein anderes Bit gesetzt ist, was wahrscheinlich der Grund dafür ist, dass der Löschvorgang nicht funktioniert. Das Problem liegt nicht im Clearing, sondern in der Überprüfung.
Wenn Sie überprüfen möchten, ob alle Bits in einer Gruppe gesetzt sind:
%Vor%Tags und Links c c++ boolean-operations bitflags