Flash Lite 2 |
|||
| Flash Lite 2.x ActionScript-Referenzhandbuch > Elemente der ActionScript-Sprache > Operatoren > ~ 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
expression : Number - Eine Zahl.
Number - Das Ergebnis der bitweisen Operation.
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
& bitweiser AND-Operator, &= bitweiser AND-Zuweisungs-Operator, ^ bitweiser XOR-Operator, ^= bitweiser XOR-Zuweisungs-Operator, | bitweiser OR-Operator, |= bitweiser OR-Zuweisungs-Operator