Objective-C-Operatoren
Ein Operator ist ein Symbol, das den Compiler anweist, bestimmte mathematische oder logische Manipulationen durchzuführen. Die Objective-C-Sprache ist reich an integrierten Operatoren und bietet die folgenden Operatortypen:
- Rechenzeichen
- Vergleichsoperatoren
- Logische Operatoren
- Bitweise Operatoren
- Zuweisungsoperatoren
- Verschiedene Operatoren
In diesem Tutorial werden die arithmetischen, relationalen, logischen, bitweisen, Zuweisungs- und anderen Operatoren nacheinander erläutert.
Rechenzeichen
Die folgende Tabelle zeigt alle arithmetischen Operatoren, die von der Sprache Objective-C unterstützt werden. Variable annehmenA hält 10 und variabel B hält 20, dann -
Beispiele anzeigen
Operator | Beschreibung | Beispiel |
---|---|---|
+ | Fügt zwei Operanden hinzu | A + B ergibt 30 |
- - | Subtrahiert den zweiten Operanden vom ersten | A - B ergibt -10 |
* * | Multipliziert beide Operanden | A * B ergibt 200 |
/. | Teilt den Zähler durch den Nenner | B / A ergibt 2 |
%. | Modul Operator und Rest nach einer ganzzahligen Division | B% A ergibt 0 |
++ | Der Inkrementoperator erhöht den ganzzahligen Wert um eins | A ++ gibt 11 |
- - | Der Dekrementierungsoperator verringert den ganzzahligen Wert um eins | A-- wird 9 geben |
Vergleichsoperatoren
Die folgende Tabelle zeigt alle relationalen Operatoren, die von der Objective-C-Sprache unterstützt werden. Variable annehmenA hält 10 und variabel B hält 20, dann -
Beispiele anzeigen
Operator | Beschreibung | Beispiel |
---|---|---|
== | Überprüft, ob die Werte von zwei Operanden gleich sind oder nicht. Wenn ja, dann wird die Bedingung wahr. | (A == B) ist nicht wahr. |
! = | Überprüft, ob die Werte von zwei Operanden gleich sind oder nicht. Wenn die Werte nicht gleich sind, wird die Bedingung wahr. | (A! = B) ist wahr. |
> | Überprüft, ob der Wert des linken Operanden größer als der Wert des rechten Operanden ist. Wenn ja, dann wird die Bedingung wahr. | (A> B) ist nicht wahr. |
< | Überprüft, ob der Wert des linken Operanden kleiner als der Wert des rechten Operanden ist. Wenn ja, dann wird die Bedingung wahr. | (A <B) ist wahr. |
> = | Überprüft, ob der Wert des linken Operanden größer oder gleich dem Wert des rechten Operanden ist. Wenn ja, dann wird die Bedingung wahr. | (A> = B) ist nicht wahr. |
<= | Überprüft, ob der Wert des linken Operanden kleiner oder gleich dem Wert des rechten Operanden ist. Wenn ja, dann wird die Bedingung wahr. | (A <= B) ist wahr. |
Logische Operatoren
Die folgende Tabelle zeigt alle logischen Operatoren, die von der Objective-C-Sprache unterstützt werden. Variable annehmenA hält 1 und variabel B hält 0, dann -
Beispiele anzeigen
Operator | Beschreibung | Beispiel |
---|---|---|
&& | Wird als logischer UND-Operator bezeichnet. Wenn beide Operanden nicht Null sind, wird die Bedingung wahr. | (A && B) ist falsch. |
|| | Wird als logischer ODER-Operator bezeichnet. Wenn einer der beiden Operanden nicht Null ist, wird die Bedingung wahr. | (A || B) ist wahr. |
! | Wird als logischer NICHT-Operator bezeichnet. Verwenden Sie diese Option, um den logischen Status des Operanden umzukehren. Wenn eine Bedingung wahr ist, macht der Operator Logical NOT false. | ! (A && B) ist wahr. |
Bitweise Operatoren
Der bitweise Operator bearbeitet Bits und führt eine bitweise Operation durch. Die Wahrheitstabellen für &, | und ^ lauten wie folgt:
p | q | p & q | p | q | p ^ q |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 |
Angenommen, A = 60; und B = 13; jetzt im Binärformat werden sie wie folgt sein -
A = 0011 1100
B = 0000 1101
-----------------
A & B = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~ A = 1100 0011
Die von der Objective-C-Sprache unterstützten bitweisen Operatoren sind in der folgenden Tabelle aufgeführt. Angenommen, Variable A hält 60 und Variable B hält 13, dann -
Beispiele anzeigen
Operator | Beschreibung | Beispiel |
---|---|---|
& | Der binäre UND-Operator kopiert ein Bit in das Ergebnis, wenn es in beiden Operanden vorhanden ist. | (A & B) ergibt 12, was 0000 1100 ist |
| | Der binäre ODER-Operator kopiert ein Bit, wenn es in einem der Operanden vorhanden ist. | (A | B) ergibt 61, was 0011 1101 ist |
^ | Der binäre XOR-Operator kopiert das Bit, wenn es in einem Operanden gesetzt ist, aber nicht in beiden. | (A ^ B) ergibt 49, was 0011 0001 ist |
~ | Der Komplementoperator für binäre Einsen ist unär und bewirkt das Umdrehen von Bits. | (~ A) ergibt -61, was 1100 0011 in der 2er-Komplementform ist. |
<< | Binärer Linksschaltoperator. Der Wert der linken Operanden wird um die Anzahl der vom rechten Operanden angegebenen Bits nach links verschoben. | Ein << 2 ergibt 240, was 1111 0000 ist |
>> | Binärer Rechtsschieber. Der Wert der linken Operanden wird um die vom rechten Operanden angegebene Anzahl von Bits nach rechts verschoben. | Eine >> 2 ergibt 15, was 0000 1111 ist |
Zuweisungsoperatoren
Es gibt folgende Zuweisungsoperatoren, die von der Objective-C-Sprache unterstützt werden:
Beispiele anzeigen
Operator | Beschreibung | Beispiel |
---|---|---|
= | Einfacher Zuweisungsoperator, Weist Werte von Operanden auf der rechten Seite dem Operanden auf der linken Seite zu | C = A + B weist C den Wert von A + B zu |
+ = | UND-Zuweisungsoperator hinzufügen. Er fügt dem linken Operanden den rechten Operanden hinzu und weist das Ergebnis dem linken Operanden zu | C + = A entspricht C = C + A. |
- = | Subtrahieren UND Zuweisungsoperator, subtrahiert den rechten Operanden vom linken Operanden und weist das Ergebnis dem linken Operanden zu | C - = A entspricht C = C - A. |
* = | Multiplizieren Sie den UND-Zuweisungsoperator. Er multipliziert den rechten Operanden mit dem linken Operanden und weist das Ergebnis dem linken Operanden zu | C * = A entspricht C = C * A. |
/ = | Divisions- UND Zuweisungsoperator. Er teilt den linken Operanden mit dem rechten Operanden und weist das Ergebnis dem linken Operanden zu | C / = A entspricht C = C / A. |
% = | Modul- UND Zuweisungsoperator. Der Modul wird mit zwei Operanden verwendet und das Ergebnis dem linken Operanden zugewiesen | C% = A entspricht C = C% A. |
<< = | Linksverschiebung UND Zuweisungsoperator | C << = 2 ist dasselbe wie C = C << 2 |
>> = | Rechtsverschiebung UND Zuweisungsoperator | C >> = 2 ist dasselbe wie C = C >> 2 |
& = | Bitweiser UND-Zuweisungsoperator | C & = 2 ist dasselbe wie C = C & 2 |
^ = | bitweises exklusives ODER und Zuweisungsoperator | C ^ = 2 ist dasselbe wie C = C ^ 2 |
| = | bitweises Inklusiv-ODER und Zuweisungsoperator | C | = 2 ist dasselbe wie C = C | 2 |
Verschiedene Operatoren ↦ sizeof & ternary
Es gibt nur wenige andere wichtige Betreiber, einschließlich sizeof und ? : unterstützt von Objective-C Language.
Beispiele anzeigen
Operator | Beschreibung | Beispiel |
---|---|---|
Größe von() | Gibt die Größe einer Variablen zurück. | sizeof (a), wobei a eine ganze Zahl ist, gibt 4 zurück. |
& | Gibt die Adresse einer Variablen zurück. | &ein; gibt die tatsächliche Adresse der Variablen an. |
* * | Zeiger auf eine Variable. | *ein; zeigt auf eine Variable. |
? :: | Bedingter Ausdruck | Wenn Bedingung wahr ist? Dann Wert X: Andernfalls Wert Y. |
Vorrang der Operatoren in Ziel-C
Die Operatorrangfolge bestimmt die Gruppierung von Begriffen in einem Ausdruck. Dies wirkt sich darauf aus, wie ein Ausdruck ausgewertet wird. Bestimmte Operatoren haben eine höhere Priorität als andere. Beispielsweise hat der Multiplikationsoperator eine höhere Priorität als der Additionsoperator -
Zum Beispiel ist x = 7 + 3 * 2; Hier wird x 13 zugewiesen, nicht 20, da der Operator * eine höhere Priorität als + hat. Daher wird er zuerst mit 3 * 2 multipliziert und dann zu 7 addiert.
Hier werden Operatoren mit der höchsten Priorität oben in der Tabelle angezeigt, Operatoren mit der niedrigsten Priorität unten. Innerhalb eines Ausdrucks werden zuerst Operatoren mit höherer Priorität ausgewertet.
Kategorie | Operator | Assoziativität |
---|---|---|
Postfix | () [] ->. ++ - - | Links nach rechts |
Einstellig | + -! ~ ++ - - (Typ) * & sizeof | Rechts nach links |
Multiplikativ | * /% | Links nach rechts |
Zusatzstoff | + - | Links nach rechts |
Verschiebung | << >> | Links nach rechts |
Relational | << = >>> = | Links nach rechts |
Gleichberechtigung | ==! = | Links nach rechts |
Bitweises XOR | ^ | Links nach rechts |
Bitweises ODER | | | Links nach rechts |
Logisches UND | && | Links nach rechts |
Logisches ODER | || | Links nach rechts |
Bedingt | ?: | Rechts nach links |
Zuordnung | = + = - = * = / =% = >> = << = & = ^ = | = | Rechts nach links |
Komma | , | Links nach rechts |