2013-10-03 11 views
7

Ich sehe^0 in der Codebasis.Was ist^0 in Golang?

Beispiel:

type stat struct { 
    ... 
    min int64 
    ... 
} 

newStat := stat{min: ^0} 

Was bedeutet^0 bedeuten?

Antwort

18

Nach the docs:

^x bitweise Komplement ist m^x mit m = für

unsigned x "alle Bits auf 1 gesetzt" und m = -1 für x signierten

Es bedeutet, dass ^0 dasselbe ist wie ~0 in anderen gängigen Sprachen.

Auf einem two's complement (die meisten der Programmiersprachen übernehmen) ist der Wert des Komplements von Null -1 (auf einem signierten Datentyp). Also das ist ein Weg zu schreiben:

newStat := stat{min: -1} 
+0

Hey vielen Dank für die Antwort. Ich bin ein Anfänger und ich habe immer noch keine Ahnung was das bedeutet. Was ist ~ 0? Was ist bitweise Ergänzung? Kannst du das bitte klären? Vielen Dank im Voraus !! – samol

+3

Das bitweise Komplement nimmt jedes Bit eines Datentyps und invertiert es. Zum Beispiel ist 0 in der binären 4-Bit-Binärzahl 0000, sein bitweises Komplement ist 1111. Wie 10 in einer binären 4-Bit-Binärzahl 1010 und sein Komplement ist 0101. –

+1

Für weitere Referenz lesen [bitweise Operationen] (http://de.wikipedia.org/wiki/Bitwise_operation) im Allgemeinen. – justinas