Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke
Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke
Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>E<strong>in</strong>e</strong> <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> Informatik <strong>und</strong> <strong>die</strong> <strong>Programmiersprache</strong> C<br />
7 Operatoren<br />
Mit Operatoren können e<strong>in</strong> oder zwei (beim ?-Operator sogar drei) Werte mite<strong>in</strong>ander verknüpft<br />
werden. Jeder Operator liefert e<strong>in</strong> der Verknüpfung entsprechendes Ergebnis zurück. Der Typ des<br />
Ergebnisses hängt vom Operator <strong>und</strong> den beteiligten Operanden ab. Bei den arithmetischen Operatoren<br />
ist der Ergebnistyp derselbe wie jener der Operanden, wenn alle beteiligten Operanden von<br />
selben Typ s<strong>in</strong>d. Ansonsten werden <strong>die</strong> Operanden <strong>in</strong> den Typ des genauesten (Grössten) beteiligten<br />
Operanden umgewandelt, <strong>und</strong> erst anschliessend <strong>die</strong> Berechnung durchgeführt. Das Ergebnis ist<br />
ebenfalls von <strong>die</strong>sem Typ.<br />
7.1 Arithmetische Operatoren<br />
Alle beteiligten Operanden werden <strong>in</strong> den genausten beteiligten Typ umgewandelt, das Ergebnis ist<br />
ebenfalls von <strong>die</strong>sem Typ.<br />
Operator Beschreibung Beispiel<br />
+ - * / Standard Arithmetik. Bei / wird bei ganzzahligen Operanden<br />
nur das ganzzahlige Ergebnis geliefert (Abgeschnitten).<br />
+ - Unäre Negation -a<br />
% Modulo Operator (Nur für ganzzahlige Typen), liefert den a % b<br />
Rest der Division (z.B. 15%4 ergibt 3)<br />
++ -- Inkrement <strong>und</strong> Dekrementoperatoren, <strong>die</strong>se gibt es <strong>in</strong> postfix<br />
<strong>und</strong> prefix Form. (a-- entspricht a = a - 1)<br />
Bei Postfix wird der Wert nach Gebrauch verändert<br />
Bei Prefix wird der Wert vor Gebrauch verändert<br />
7.2 Bitweise Operatoren<br />
a+b*c<br />
d / y - 4.0<br />
<strong>in</strong>t x = 3; z = 7;<br />
<strong>in</strong>t y = 0;<br />
y = x++; /*y ist 3*/<br />
y = ++z; /*y ist 8*/<br />
Diese Operatoren können nur auf ganze Zahlen angewendet werden. Bei den Operatoren & | <strong>und</strong> ^<br />
werden jeweils <strong>die</strong> <strong>in</strong> der b<strong>in</strong>ären Schreibweise e<strong>in</strong>ander entsprechenden Bits der Operanden mite<strong>in</strong>ander<br />
verknüpft.<br />
Operator Beschreibung Beispiel<br />
& Bitweise AND Verknüpfung (6 & 3 ergibt 2). a & b<br />
| Bitweise ODER Verknüpfung (6 | 3 ergibt 7). a | b<br />
^ Bitweise EXOR Verknüpfung (6 ^ 3 ergibt 5). a ^ b<br />
~ <strong>E<strong>in</strong>e</strong>rkomplement, Bitweise Negation. ~a<br />
3 ergibt 1).<br />
a >> b entspricht a / 2 b<br />
ACHTUNG, bei signed Operanden wird üblicherweise<br />
das Vorzeichenbit dupliziert (Prozessor <strong>und</strong> Compilerabhängig),<br />
bei unsigned wird immer e<strong>in</strong>e 0 nachgeschoben.<br />
a >> b<br />
Beispiele: 3 0011 3 0011 3 0011<br />
& | ^<br />
6 0110 6 0110 6 0110<br />
2 0010 7 0111 5 0101<br />
Gedruckt am 11.09.2008 13:04:00 Letzte Änderung am: 11. September 2008 Version 2.4, I. Oesch 25/147