30.06.2013 Aufrufe

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

18 2. Datentypen und Variablen<br />

Je nach Plattform gibt es auch e<strong>in</strong>en “besonders langen” long Wert.<br />

Se<strong>in</strong>e Existenz ist allerd<strong>in</strong>gs vom Compiler abhängig. Hier hilft leider nur<br />

ausprobieren. Wenn er def<strong>in</strong>iert ist, so kann man Folgendes garantiert<br />

sagen:<br />

E<strong>in</strong> long long ist e<strong>in</strong>e vorzeichenbehaftete Ganzzahl, deren Fassungsvermögen<br />

größer oder gleich dem e<strong>in</strong>es long ist.<br />

unsigned long long <strong>in</strong>t bzw. unsigned long long:<br />

Bezüglich der Existenz e<strong>in</strong>es unsigned long long gilt dasselbe, wie für<br />

den long long Datentyp zuvor. Wenn er def<strong>in</strong>iert ist, so ist Folgendes<br />

garantiert:<br />

E<strong>in</strong> unsigned long long ist e<strong>in</strong>e positive Ganzzahl, deren Fassungsvermögen<br />

größer oder gleich dem e<strong>in</strong>es unsigned long ist.<br />

float:<br />

Wie die Ganzzahl-Datentypen, so s<strong>in</strong>d auch die Gleitkomma-Datentypen<br />

von C ++ masch<strong>in</strong>enabhängig: float repräsentiert e<strong>in</strong>e vorzeichenbehaftete<br />

Gleitkommazahl mit e<strong>in</strong>facher Genauigkeit (=s<strong>in</strong>gle Precision), was<br />

auch immer das heißt. Ich möchte es e<strong>in</strong>fach so formulieren: Arbeitet<br />

man <strong>in</strong> e<strong>in</strong>em Programm mit Gleitkommazahlen, deren Größe sich <strong>in</strong> e<strong>in</strong>em<br />

Bereich von <strong>in</strong> etwa ±10 15 –±10 35 bewegt und bei denen Rundungsfehler<br />

ke<strong>in</strong>e besondere Rolle spielen, dann ist die Verwendung von float<br />

normalerweise ausreichend. Will man ganz genau über das Fassungsvermögen,<br />

die Genauigkeit und andere Eigenschaften e<strong>in</strong>es float und<br />

auch anderer Datentypen Bescheid wissen, so kann man dies über die sogenannten<br />

numeric_limits tun. Da es sich hierbei um e<strong>in</strong>e objektorientierte<br />

Implementation handelt, wird die Besprechung auf Abschnitt 16.7<br />

verschoben.<br />

Nicht-vorzeichenbehaftete Gleitkommazahlen (also unsigned float) gibt<br />

es nicht. Aufgrund der Natur dieser Zahlen wären diese auch nicht besonders<br />

s<strong>in</strong>nvoll.<br />

double:<br />

E<strong>in</strong> double repräsentiert e<strong>in</strong>e vorzeichenbehaftete Gleitkommazahl mit<br />

doppelter Genauigkeit (=double Precision), was auch immer man darunter<br />

nun versteht. Als kle<strong>in</strong>en Anhaltspunkt möchte ich eigentlich nur<br />

erwähnen, dass double üblicherweise vom Wertebereich (ca. ±10 300 )<br />

als auch von der Anfälligkeit gegenüber Rundungsfehlern her für gängige<br />

Gleitkomma-Anwendungen brauchbar ist. Auch hier s<strong>in</strong>d, wie bei float,<br />

alle Eigenschaften über die numeric_limits herausf<strong>in</strong>dbar.<br />

long double:<br />

Wo auch immer double nicht ausreichend ist, kann man auf long double<br />

zurückgreifen, der e<strong>in</strong>e Gleitkommazahl mit erweiterter Genauigkeit<br />

(=extended Precision) bezeichnet. Hier wird es allerd<strong>in</strong>gs gleich noch<br />

etwas schwammiger als bei float und double zuvor, denn Genaues über<br />

se<strong>in</strong>e Natur und se<strong>in</strong> Fassungsvermögen erfährt man wirklich nur noch<br />

durch die entsprechenden Abfragen von numeric_limits.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!