Recycler, 05.12.2008, 18:54 |
---|
Operatoren in PAWN (und ähnlichen Sprachen wie C++) Mit diesem Tutorial möchte ich euch zeigen, was man alles mit der PAWN Language und dessen verwandten Programmiersprachen anstellen kann Beachtet, dass es sich hierbei um reine Theorie handelt. Es gibt hier keine Beispiele für SA-MP Scripte oder ähnlichem. Wenn ihr aber die Logik verstanden habt, könnt ihr sicherlich einiges an euren Codes vereinfachen. Ausdrücke (Expressions) Eine ganz einfache Definition eines Ausdruckes - der ist nötig, um überhaupt in einer Sprache wie PAWN programmieren zu können. Ein Ausdruck (Expression) muss mindestens einen Operanden (zu bearbeitende Werte) mit einem Operator verbinden - Ausdrücke mit einem Semikolon nennt man Anweisungen (Statements). Rechenprozessoren (Arithmetic) Fangen wir mit den einfachen Dingen an. Diese sind den meisten zwar schon bekannt, aber ich denke zur Vervollständigung darf diese Sektion nicht fehlen. Operator + Ergebnis ist die Summe aus x und y. Operator - Ergebnis ist die Differenz aus x und y. Operator * Ergebnis ist das Produkt aus x und y. Operator / Ergebnis ist der Quotient aus x und y. Operator ^ Ergebnis ist x zum y Quadrat. Operator ++ / -- Ergebnis ist x + 1 bzw. x - 1. Operator % (MOD) Ergebnis ist der Rest einer Division von x und y. 7 / 2 = 3 + (Rest 1), 7 % 2 = 1 Modulo wird oft verwendet um herauszufinden, ob eine Zahl gerade bzw. ungerade ist. Denn es gilt: x % 2 = 0, wenn der Quotient gerade ist Bit Manipulation (Arithmetic) Dies ist für viele, die sich noch nicht mit dem Bitsystem auskennen, nicht sehr nützlich. Trotzdem sind folgende arithmetische Ausdrücke nützlich und ich selbst habe einige Anwendungen in SA-MP Scripten. Operator ~ (Komplement) Hierbei wird der Wahrheitswert aller Bits in einer Variable negiert. Bit 1 wird 0 und umgekehrt. ~3 = -4 ~4 = -5 Wer nicht weiß wie dies genau funktioniert, kann sich die Bitlehre auf Wikipedia durchlesen. Operator << (Bitshifting left) Die Bits einer Variable werden um y nach links verschoben. Dies hat die oben in der Alternative angegebene Auswirkung. 00001100 (dezimal ist dies die 12) << 2 = 00110000 (dezimal ist dies die 4 Operator >> (Bitshifting right) Die Bits einer Variable werden um y nach rechts verschoben. Dies hat die oben in der Alternative angegebene Auswirkung. 00001100 (dezimal ist dies die 12) >> 2 = 00000011 (dezimal ist dies die 3) Operator >>> (Bitshifting right logical) Die Bits einer Variable werden um y nach rechts verschoben. Anders als bei >> werden nun anstelle von Kopien der Vorzeichenbits die Stellen mit Nullen gefüllt. 00001100 (dezimal ist dies die 12) >>> 2 = 0 -> 00000011 (dezimal ist dies die 3) <<< entspricht damit << Operator & (Bitlehre: AND) Die Bits werden nach der logischen AND-Verknüpfung miteinander verrechnet. Das Bit ist 1, wenn beide Bits 1 sind, ansonsten 0. 00001100 (dezimal ist dies die 12) &00000011 (dezimal ist dies die 3) =00000000 (dezimal ist dies, oh welch ein Wunder, die 0) Operator | (Bitlehre: OR) Die Bits werden nach der logischen OR-Verknüpfung miteinander verrechnet. Das Bit ist 1, wenn eines der beiden Bits 1 ist, ansonsten 0. 00001100 (dezimal ist dies die 12) |00000011 (dezimal ist dies die 3) =00001111 (dezimal ist dies die 15) Zuordnungen (Assignments) Dies sind alle arithmetischen Anweisungen, die ihr in PAWN durchführen könnt. Da sie sich zum Teil selbst erklären, führe ich sie nicht allzu sehr aus. Die meisten sind mit weiteren Operatoren ausgestattet, siehe oben. Operator = Der Wert von y wird in die Variable x kopiert. Operator += Summe aus x und y, gespeichert in x. Operator -= Differenz aus x und y, gespeichert in x. Operator *= Produkt aus x und y, gespeichert in x. Operator /= Quotient aus x und y, gespeichert in x. Operator ^= Quadrat aus x und y, gespeichert in x. Operator %= Modulo aus x und y, gespeichert in x. Operator <<= Bitshift von x um y nach links, gespeichert in x. Operator >>= Bitshift von x um y nach rechts, gespeichert in x. Operator >>>= Logischer Bitshift von x um y nach rechts, gespeichert in x. Operator &= AND-Verknüpfung von x und y, gespeichert in x. Operator |= OR-Verknüpfung von x und y, gespeichert in x. WIRD FORTGESETZT MfG Recycler |