Operatoren Flashcards
In welche 3 Eigenschaften kann man Operatoren einordnen
- Anzahl ihrer Operanden
- Position zu den Operanden
- Assoziativität
Wie werden Operatoren mit nur einem Operator bezeichnet?
unär
Wie werden Operatoren bezeichnet mit zwei Operanden?
binär
Wie werden Operatoren mit drei Operanden?
ternär
Wie nennt man Operatoren, die zwischen den Operanden stehen?
infix
Wie nennt man Operatoren, die vor ihren Operanden stehen?
Präfix
Wie nennt man Operatoren, die nach ihren Operanden stehen?
Postfix
Was heißt es, wenn ein Operator linksassoziativ ist?
Er wertet zuerst den Ausdruck ganz links aus und geht dann nach rechts weiter
Was heißt es, wenn ein Operator rechtsassoziativ ist?
Er wertet zuerst den Ausdruck ganz rechts aus und geht dann nach links weiter
Mit welchem Operator kann ich zwei Zahlen addieren?
+
Mit welchem Operator kann ich zwei Zahlen subtrahieren?
-
Mit welchem Operator kann ich zwei Zahlen Multiplizieren?
*
Mit welchem Operator kann ich zwei Zahlen dividieren?
/
Mit welchem Operator kann ich den Rest einer Division erhalten?
% (Modulo)
Wie drücke ich die arithmetische Operation var ist gleich a plus b aus?
var = a + b
Wie drücke ich die arithmetische Operation var ist gleich a minus b aus?
var = a - b
Wie drücke ich die arithmetische Operation var ist gleich a mal b aus?
var = a * b
Wie drücke ich die arithmetische Operation var ist gleich a geteilt durch b aus?
var = a / b
Wie drücke ich die arithmetische Operation var ist gleich der Rest von a durch b aus?
var = a % b
Welche Rechenregel gilt für arithmetische Operationen?
Punkt vor Strich
Was gilt für arithmetische Operatoren bezüglich ihrer Anzahl an Operanden?
sie sind binär
Was gilt für arithmetische Operatoren bezüglich ihrer Position zu ihren Operanden?
sie sind infix
Was gilt für arithmetische Operatoren bezüglich ihrere Assoziativität
sie sind linksassoziativ
Was passiert mit dem Divisionsrest bei einer division von zwei ganzen Zahlen?
er wird gegelassen
Welche Zahl führt beim Modulo Operator zu einem Compilerfehler oder anderen Fehlern wenn man sie als Divisor verwendet?
0
Wie kann ich den Ausdruck a = a + b auf verkürzte Weise schreiben?
a += b
Wie kann ich den Ausdruck a = a - b auf verkürzte Weise schreiben?
a -= b
Wie kann ich den Ausdruck a = a * b auf verkürzte Weise schreiben?
a *= b
Wie kann ich den Ausdruck a = a / b auf verkürzte Weise schreiben?
a /= b
Wie kann ich den Ausdruck a = a % b auf verkürzte Weise schreiben?
a %= b
Was macht der Inkrement Operator?
er erhöht eine Variable um 1
Was macht der Dekrement Operator?
er veringert die Variable um 1
Wie viele Operanden haben jeweils Inkrement/Dekrement Operator?
unär
Wie sieht der Inkrement Operator aus?
++
Wie sieht der Dekrement Operator aus?
–
Was ist der unterschied zwischen der Präfix und Postfixschreibweise des Inkrement Operators, also von ++var und var++
++var erhöht den Wert um 1 und gibt den neuen Wert direkt an den aktuellen Ausdruck weiter.
var ++ erhöht den Wert um 1, gibt aber noch den alten Wert an den aktuellen Ausdruck weiter.
Was ist der Unterschied zwischen der Präfix und Postfixschreibweise des Dekrement Operators, also von –var und var–
–var veringert den Wert um 1 und gibt den neuen Wert direkt an den aktuellen Ausdruck weiter.
var– veringert den Wert um 1, gibt aber noch den alten Wert an den aktuellen Ausdruck weiter
Warum verwendet man den Inkrement/Dekrement Operator und nicht einfach a = a + 1 oder a = a - 1?
Weil der Inkrement Operator unter umständen bis zu 10 mal schneller ist
Was machen Bit-Operatoren?
Sie greifen direkt auf die Binärdarstellung von Variablen zu und ändern diese.
Auf welchen Datentypen sind Bit-Operatoren definiert?
Nur auf Ganzzahldatentypen
Was ist das Zeichen der Bitweisen AND-Verknüpfung?
&
Was ist das Zeichen der Bitweisen OR-Verknüpfung?
|
Was ist das Zeichen der Bitweisen XOR-Verknüpfung?
Was ist das Zeichen des Bitweisen Komplements?
~
Was ist das Zeichen der Bitweisen Rechtsverschiebung?
>>
Was ist das Zeichen der Bitweisen Linksverschiebung?
«
Was ist das Zeichen der Bitweisen Linksrotation?
«<
Was ist das Zeichend er Bitweisen Rechtsrotation?
>>>
Wie schreibe ich var ist gleich a bitweise verundet mit b?
var = a & b
Wie schreibe ich var ist gleich a bitweise verordert mit b?
var = a | b
Wie schreibe ich var ist gleich a bitweise xor mit b?
var = a ^ b
Wie schreibe ich var ist gleich bitweises Komplement von a?
var = ~a
Wie schreibe ich var ist gleich a um n zeichen nach rechts geschoben?
var = a»_space; n
Wei schreibe ich var ist gleich a um n Zeichen nach links geschoben?
var = a «_space;n
Wie schreibe ich var ist gleich a um n Zeichen nach links rotiert?
var = a «< n
Wie schreibe ich var ist gleich a um n Zeichen nach rechts rotiert?
var = a >>> n
Welche Bit-Operation kann ich nicht auf verkürtze Weise schreiben?
das Bitweise Komplement
Wie kann ich a = a & b auf verkürzte Weise schreiben?
a &= b
Wie kann ich a = a | b auf verkürzte Weise schreiben?
a |= b
Wie kann ich a = a ^ b auf verkürzte Weise schreiben?
a ^= b
Wie kann ich a = a»_space; b auf verkürzte Weise schreiben?
a»_space;= b
Wie kann ich a = a «_space;b auf verkürzte Weise schreiben?
a «= b
Wie kann ich a = a»_space;> b auf verkürzte Weise schreiben?
a»_space;>= b
Wie kann ich a = a «< b auf verkürzte Weise schreiben?
a «<= b
Was unterscheided das Komplement gegenüber den anderen Bit Operationen in hinsicht auf die Anzahl der Operanden?
das Bitweise Komplement ist unär, die anderen Bitoperationen sind binär.
Mit welchem anderen Operator sollte man das Bitweise UND nicht verwechseln und wie kann man diese unterscheiden?
Mit dem Addressoperator &. Der Addressoperator ist unär und Präfix, während der Bitweise UND Operator binär und infix ist.
Wofür eignet sich der Bitweise UND Operator besonders gut?
- gezielt Bits löschen
- überprüfen ob gezielte Bits gesetzt sind?
Wie kann ich mit dem UND Operator das n-te bit der Variable var auf 0 setzen?
var = var & (~(1 «_space;n))
Wie kann ich mit dem UND Operator überprüfen ob das n-te Bit der Variable var gesetzt ist?
ans = var & (1 «_space;n)
das ergibt ungleich 0 falls das Bit gesetzt war.
Wofür eignet sich der Bitweise ODER Operator sehr gut?
- gezielt einzelne Bits setzen
Wie kann ich mit dem ODER Operator gezielt das n-te Bit der Variable var setzen?
var = var | (1 «_space;n)
Wofür kann der Bitweise XOR Operator sehr gut verwendet werden?
- gezielt einzelne Bits toggeln (umschalten)
- tauschen von zwei variablen ohne eine temporäre variable
Wie kann ich mit dem Bitweisen XOR Operator gezielt das das n-te bit der Variable var umschalten (toggeln)
var = var ^ (1 «_space;n)
Welche Eigenschaft von der Bitweisen XOR Operation erlaubt es mir zwei Variablen zu tauschen ohne das ich eine temporäre Variable brauche?
Wenn man auf einer Zahl zwei mal die gleiche XOR Operation ausführt erhält man die ursprüngliche Zahl
a ^ b ^ b = a
Wie kann ich mit der XOR Operation die beiden Variablen a und B tauschen ohne eine temporäre Variable?
a = a ^ b
b = a ^ b
a = a ^ b
Was ist der Vorteil und Nachteil vom tauschen von zwei Variablen mit XOR und mit temorärer Variable?
- XOR verbraucht weniger speicherplatz
- Ist aber meist langsamer oder gleich schnell
Welche Rechenoperation kann mit der Linksverschiebung erheblich verschnellert werden?
Multiplikation mit einer zweierpotenz
Welche Rechenoperation kann mit der Rechtsverschiebung erheblich verschnellert werden?
Division mit einer zweierpotenz
Wie kann ich mit der Linksverschiebung die Variable var mit 2^n multiplizieren?
var = var «_space;n
Wie kann ich mit der Rechtsverschiebung die Variable var durch 2^n teilen?
var = var»_space; n
Wie sieht der size-of Operator aus?
sizeof(var)
Was macht der size-of Operator?
er gibt die größe eines Datentyps in Byte zurück