Ich kann den Namen UND NICHT NICHT wirklich googeln und brauchbare Ergebnisse erhalten, was genau ist dieser Operator, und wie könnte ich das in einer Sprache wie C machen? Ich überprüfte die Spezifikation, und dort ist nichts hilfreich, aber eine Liste, die besagt, dass es &^
(AND NOT) ist.
Das C-Äquivalent des Go-Ausdrucks x &^ y
ist nur x & ~y
. Das ist buchstäblich " x
AND (bitweise NICHT von y
)".
Im Abschnitt arithmetische Operatoren der Spezifikation wird &^
als Operation "bit clear" beschrieben Idee, wofür Sie es verwenden möchten. Als zwei separate Operationen wandelt ~y
jedes einzelne Bit in eine Null um, die dann das entsprechende Bit in x
löscht. Jedes Null-Bit wird in eine Eins konvertiert, die das entsprechende Bit in x
erhält.
Wenn Sie also x | y
als eine Möglichkeit betrachten, bestimmte Bits von x
basierend auf einer Maskenkonstante y
einzuschalten, macht x &^ y
das Gegenteil und schaltet diese Bits aus.
Tags und Links go bit-manipulation