Flash Lite 2 |
|||
| Flash Lite 2.x ActionScript-Referenzhandbuch > Elemente der ActionScript-Sprache > Operatoren > >> bitweiser Verschiebungs-Operator (nach rechts) | |||
expression1 >> expression2
Wandelt expression1 und expression2 in 32-Bit-Ganzzahlen um und verschiebt alle Bits in expression1 um die Anzahl der Stellen nach rechts, die sich aus der ganzzahligen Umwandlung von expression2 ergibt. Nach rechts verschobene Bits werden abgeschnitten. Um das Vorzeichen des ursprünglichen Ausdrucks expression zu bewahren, werden die Bits auf der linken Seite mit 0 aufgefüllt, wenn das höchstwertige Bit (das Bit ganz links) von expression1 gleich 0 ist. Wenn das höchstwertige Bit 1 ist, werden sie mit 1 aufgefüllt. Die Verschiebung eines Bits um eine Stelle nach rechts entspricht der Division durch 2 und Abschneiden des Rests.
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
expression1 : Number - Eine Zahl oder ein Ausdruck, die bzw. der bitweise nach rechts verschoben werden soll.
expression2 : Number - Eine Zahl oder ein Ausdruck, die bzw. der in eine Ganzzahl von 0 bis 31 umgewandelt werden kann.
Number - Das Ergebnis der bitweisen Operation.
Im folgenden Beispiel wird 65535 in eine 32-Bit-Ganzzahl umgewandelt und um 8 Bit nach rechts verschoben.
var x:Number = 65535 >> 8; trace(x); // Ausgabe: 255
Im folgenden Beispiel werden die Ergebnisse des vorherigen Beispiels veranschaulicht.
var x:Number = 255;
Dies errechnet sich wie folgt: 65535 dezimal ist gleich 1111111111111111 binär (sechzehnmal 1), 1111111111111111 binär um 8 Bit nach rechts verschoben ist 11111111 binär, und 11111111 binär ist 255 dezimal. Das höchstwertige Bit ist 0, da Ganzzahlen 32-Bit-Zahlen sind, somit ist das Füllbit 0.
Im folgenden Beispiel wird -1 in eine 32-Bit-Ganzzahl umgewandelt und um 1 Bit nach rechts verschoben.
var x:Number = -1 >> 1; trace(x); // Ausgabe: -1
Im folgenden Beispiel werden die Ergebnisse des vorherigen Beispiels veranschaulicht.
var x:Number = -1;
Dies errechnet sich wie folgt: -1 dezimal entspricht 11111111111111111111111111111111 binär (zweiunddreißigmal 1); durch Verschieben um 1 Bit nach rechts wird das niedrigstwertige Bit (das Bit ganz rechts) entfernt und das höchstwertige Bit mit 1 aufgefüllt. Das Ergebnis ist 11111111111111111111111111111111 (zweiunddreißigmal 1) binär, was der 32-Bit-Ganzzahl -1 entspricht.
>>= bitweiser Verschiebungszuweisungs-Operator (nach rechts)