~ bitweiser NOT-Operator

~expression

Wird auch als Einerkomplement-Operator bzw. als bitweiser Komplement-Operator bezeichnet. Wandelt expression in eine vorzeichenbehaftete 32-Bit-Ganzzahl um und bildet dann das bitweise Einerkomplement dazu. Das bedeutet, dass jedes 0-Bit im Ergebnis auf 1 gesetzt wird und und jedes 1-Bit auf 0. Das Ergebnis ist eine 32-Bit-Ganzzahl mit Vorzeichen.

So wird der Hexadezimalwert 0x7777 mit der folgenden Binärzahl dargestellt: 0111011101110111

Die bitweise Negation dieses Hexadezimalwerts, ~0x7777, ist diese Binärzahl: 1000100010001000

In hexadezimaler Schreibweise wird daraus 0x8888. Aus diesem Grund hat ~0x7777 den Wert 0x8888.

Bitweise Operatoren werden am häufigsten zur Darstellung von Flag-Bits verwendet (boolesche Werte, die jeweils aus einem Bit bestehen).

Gleitkommazahlen werden in Ganzzahlen umgewandelt. Dabei werden sämtliche Nachkommastellen abgeschnitten. Positive Ganzzahlen werden in vorzeichenlose Hexadezimalwerte mit einem Maximalwert von 4294967295 oder 0xFFFFFFFF umgewandelt. Wenn die ursprüngliche Zahl größer ist, werden die höchstwertigen Stellen bei der Umwandlung abgeschnitten, sodass das Ergebnis immer noch ein 32-Bit-Wert ist. Negative Zahlen werden mithilfe der Zweierkomplement-Darstellung in vorzeichenlose Hexadezimalwerte von maximal -2147483648 bzw. 0x800000000 umgewandelt. Von kleineren Zahlen wird das Zweierkomplement gebildet (mit höherer Genauigkeit), die höchstwertigen Stellen werden wiederum abgeschnitten.

Der Rückgabewert wird als vorzeichenbehafteter Zweierkomplementwert interpretiert, also handelt es sich bei diesem Wert um eine Ganzzahl zwischen -2147483648 und 2147483647.

Verfügbarkeit: ActionScript 1.0, Flash Lite 2.0

Operanden

expression : Number - Eine Zahl.

Rückgabewerte

Number - Das Ergebnis der bitweisen Operation.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung eines bitweisen NOT-Operators (~) bei Flag-Bits:

var ReadOnlyFlag:Number = 0x0001; // Bit 0 als schreibgeschütztes Flag definieren
var flags:Number = 0;
trace(flags);
/* Zum Festlegen des schreibgeschützten Flags in der flags-Variable
 wird im folgenden Code das bitweise OR verwendet: 
*/
flags |= ReadOnlyFlag;
trace(flags);
/* Erstellen Sie zum Löschen des schreibgeschützten Flags in der Variable 
 "flags" zunächst eine Maske. Wenden Sie dazu das bitweise NOT auf
 "ReadOnlyFlag" an. In der Maske ist jedes Bit auf 1 gesetzt, mit 
 Ausnahme des Bits für das schreibgeschützte Flag. 
 Wenden Sie dann das bitweise AND auf die Maske an, um das schreibgeschützte 
 Flag zu löschen. Im folgenden Code wird die Maske erstellt und die 
 bitweise AND-Operation durchgeführt: 
*/ 
flags &= ~ReadOnlyFlag;
trace(flags);
// Ausgabe: 0 1 0 

Siehe auch

& bitweiser AND-Operator, &= bitweiser AND-Zuweisungs-Operator, ^ bitweiser XOR-Operator, ^= bitweiser XOR-Zuweisungs-Operator, | bitweiser OR-Operator, |= bitweiser OR-Zuweisungs-Operator