Was ist der Operator "& ^" in Golang?

8

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.

    
mosmo 25.12.2015, 02:10
quelle

1 Antwort

13

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.

    
James Henstridge 25.12.2015, 02:25
quelle

Tags und Links