06.10.2013 Aufrufe

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

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!