Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
Vorwort des Gutachters
1 Einstieg in C
2 Das erste Programm
3 Grundlagen
4 Formatierte Ein-/Ausgabe mit »scanf()« und »printf()«
5 Basisdatentypen
6 Operatoren
7 Typumwandlung
8 Kontrollstrukturen
9 Funktionen
10 Präprozessor-Direktiven
11 Arrays
12 Zeiger (Pointer)
13 Kommandozeilenargumente
14 Dynamische Speicherverwaltung
15 Strukturen
16 Ein-/Ausgabe-Funktionen
17 Attribute von Dateien und das Arbeiten mit Verzeichnissen (nicht ANSI C)
18 Arbeiten mit variabel langen Argumentlisten – <stdarg.h>
19 Zeitroutinen
20 Weitere Headerdateien und ihre Funktionen (ANSI C)
21 Dynamische Datenstrukturen
22 Algorithmen
23 CGI mit C
24 MySQL und C
25 Netzwerkprogrammierung und Cross–Plattform-Entwicklung
26 Paralleles Rechnen
27 Sicheres Programmieren
28 Wie geht’s jetzt weiter?
A Operatoren
B Die C-Standard-Bibliothek
Stichwort

Jetzt Buch bestellen
Ihre Meinung?

Spacer
<< zurück
C von A bis Z von Jürgen Wolf
Das umfassende Handbuch
Buch: C von A bis Z

C von A bis Z
3., aktualisierte und erweiterte Auflage, geb., mit CD und Referenzkarte
1.190 S., 39,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1411-7
Pfeil 5 Basisdatentypen
Pfeil 5.1 Deklaration und Definition
Pfeil 5.2 Der Datentyp »int« (Integer)
Pfeil 5.3 Variablen verwenden
Pfeil 5.4 Der Datentyp »long«
Pfeil 5.5 Der Datentyp »long long«
Pfeil 5.6 Der Datentyp »short«
Pfeil 5.7 Ganzzahlige Typen mit vorgegebener Breite – <stdint.h>
Pfeil 5.7.1 <inttypes.h> (C99)
Pfeil 5.8 Die Gleitpunkttypen »float« und »double«
Pfeil 5.8.1 Gleitpunkttypen im Detail
Pfeil 5.8.2 »float« im Detail
Pfeil 5.8.3 »double« im Detail
Pfeil 5.8.4 long double
Pfeil 5.8.5 Einiges zu n-stelliger Genauigkeit
Pfeil 5.9 Numerische Gleitpunktprobleme
Pfeil 5.10 Komplexe Gleitpunkttypen – <complex.h>
Pfeil 5.11 Der Datentyp »char«
Pfeil 5.12 Nationale contra internationale Zeichensätze
Pfeil 5.13 Der Breitzeichen-Typ »wchar_t«
Pfeil 5.14 Multibyte-Zeichen
Pfeil 5.15 Boolescher Wert – <stdbool.h>
Pfeil 5.16 Vorzeichenlos und vorzeichenbehaftet
Pfeil 5.17 Limits für Ganzzahl- und Gleitpunktdatentypen
Pfeil 5.18 Der Typ »void«
Pfeil 5.19 Konstanten
Pfeil 5.19.1 Ganzzahlkonstanten
Pfeil 5.19.2 Gleitpunktkonstanten
Pfeil 5.19.3 Zeichenkonstanten
Pfeil 5.19.4 Stringliterale (Stringkonstante)
Pfeil 5.20 Umwandlungsvorgaben für formatierte Ein-/Ausgabe


Rheinwerk Computing - Zum Seitenanfang

5.17 Limits für Ganzzahl- und Gleitpunktdatentypen topZur vorigen Überschrift

Jetzt haben Sie eine Menge über Datentypen und ihre Eigenschaften erfahren. Häufig hieß es jedoch, auf bestimmten Systemen hat Datentyp x die Größe y. Wenn Sie jetzt erfahren wollen, welchen maximalen oder minimalen Wert der Datentyp int z. B. auf Ihrem System besitzt, können Sie die Konstanten in den Standard-Headerdateien <limits.h> und <float.h> abfragen bzw. ausgeben. Mit folgendem Listing ist es möglich, alle Limits des Datentyps int auf Ihrem System abzufragen:

/* int_limit.c */
#include <stdio.h>
#include <limits.h>

int main(void) {
   printf("int-Wert mindestens : %d\n", INT_MIN);
   printf("int-Wert maximal    : %d\n", INT_MAX);
   printf("unsigned int max.   : %u\n", UINT_MAX);
   printf("int benötigt %d Byte (%d Bit) Speicher\n",
      sizeof(int), sizeof(int) * CHAR_BIT);
   return 0;
}

Genauso wie in diesem Beispiel können Sie auch die anderen Limit-Eigenschaften der Datentypen abfragen – vorausgesetzt, Sie binden die Headerdatei <limits.h> mit ein. Tabelle 5.10 führt die Limits für ganzzahlige Datentypen in der Headerdatei <limits.h> auf:


Tabelle 5.10 Limit-Konstanten für ganzzahlige Datentypen in <limits.h>

Konstante Mindestwert Erklärung
CHAR_BIT1)  

8

Bitzahl für ein Byte

SCHAR_MIN

–127

min. signed char

SCHAR_MAX

+127

max. signed char

UCHAR_MAX

255

max. unsigned char

CHAR_MIN

SCHAR_MIN oder 0

min. char

CHAR_MAX
SCHAR_MAX oder UCHAR_MAX

max. char

WCHAR_MIN

implementierungsabhängig

min. wchar_t

WCHAR_MAX

implementierungsabhängig

max. wchar_t

MB_LEN_MAX2)  

1

max. Byte für ein Multibyte-Zeichen

SHRT_MIN

–32767

min. short int

SHRT_MAX

+32767

max short int

USHRT_MAX

65535

max. unsigned short

INT_MIN

–32767 (32 Bit: –2147483647)

min. int

INT_MAX

+32767 (32 Bit: +2147483647)

max. int

UINT_MAX

65535 (32 Bit: 4294967295)

max. unsigned int

LONG_MIN

–2147483647

min. long int

LONG_MAX

+2147483647

max. long int

ULONG_MAX

4294967295

max. unsigned long int

LLONG_MIN

–9223372036854775808

min. long long

LLONG_MAX

+9223372036854775807

max. long long

ULLONG_MAX

+18446744073709551615

max. unsigned long long

1) Bei vielen DSPs (digitalen Signalprozessoren) ist CHAR_BIT gleich 16 oder mehr.

2) Wird Unicode verwendet, ist MB_LEN_MAX auf 4 oder mehr gesetzt.


Benötigen Sie hingegen Limit-Werte für Gleitpunktzahlen, gibt die Headerdatei <float.h> Auskunft. Darin finden Sie u. a. Konstanten mit allen Limits und Eigenschaften, die für Gleitpunktdatentypen entscheidend sind. Das folgende Listing gibt alle Limits und Eigenschaften für den Datentyp float auf Ihrem System aus:

/* float_limit.c */
#include <stdio.h>
#include <float.h>
#include <limits.h> //für CHAR_BIT

int main(void) {
   printf("Limits und Eigenschaften von float\n");
   printf("----------------------------------\n");
   printf("Bytes: %d\n", sizeof(float));
   printf("Bit  : %d\n", sizeof(float) * CHAR_BIT );
   printf("Basis-Exponenten-Darstellung: %d\n", FLT_RADIX);
   printf("Anzahl Mantissenstellen   : %d\n", FLT_MANT_DIG);
   printf("Anzahl   Dezimalziffern    : %d\n", FLT_DIG);
   printf("Kl. neg. FLT_RADIX-Exponent: %d\n", FLT_MIN_EXP);
   printf("Kl. neg. Zehnerexponent : %d\n", FLT_MIN_10_EXP);
   printf("Größter FLT_RADIX-Exponent : %d\n", FLT_MAX_EXP);
   printf("Größter Zehnerexponent  : %d\n", FLT_MAX_10_EXP);
   printf("Größter endl. float-Wert   : %f\n", FLT_MAX);
   printf("Kleinster endl. float-Wert : %f\n", FLT_MIN);
   return 0;
}

Die folgende Tabelle zeigt die Limits und Eigenschaften von Gleitpunktdatentypen, die in der Headerdatei <float.h> deklariert sind:


Tabelle 5.11 Limit-Konstanten für Gleitpunkt-Datentypen in <float.h>

Konstante Bedeutung
FLT_RADIX

Basis für Exponentendarstellung

FLT_MANT_DIG

Anzahl der Mantissenstellen (float)

DBL_MANT_DIG

Anzahl der Mantissenstellen (double)

LDBL_MANT_DIG

Anzahl der Mantissenstellen (long double)

FLT_DIG

Genauigkeit in Dezimalziffern (float)

DBL_DIG

Genauigkeit in Dezimalziffern (double)

LDBL_DIG

Genauigkeit in Dezimalziffern (long double)

FLT_MIN_EXP

minimaler negativer FLT_RADIX-Exponent (float)

DBL_MIN_EXP

minimaler negativer FLT_RADIX-Exponent (double)

LDBL_MIN_EXP

minimaler negativer FLT_RADIX-Exponent (long double)

FLT_MIN_10_EXP

minimaler negativer Zehnerexponent (float)

DBL_MIN_10_EXP

minimaler negativer Zehnerexponent (double)

LDBL_MIN_10_EXP

minimaler negativer Zehnerexponent (long double)

FLT_MAX_EXP

maximaler FLT_RADIX-Exponent (float)

DBL_MAX_EXP

maximaler FLT_RADIX-Exponent (double)

LDBL_MAX_EXP

maximaler FLT_RADIX-Exponent (long double)

FLT_MAX_10_EXP

maximaler Zehnerexponent (float)

DBL_MAX_10_EXP

maximaler Zehnerexponent (double)

LDBL_MAX_10_EXP

maximaler Zehnerexponent (long double)

FLT_MAX

maximaler Gleitpunktwert (float)

DBL_MAX

maximaler Gleitpunktwert (double)

LDBL_MAX

maximaler Gleitpunktwert (long double)

FLT_EPSILON

kleinster float-Wert x, für den 1.0 + x ungleich 1.0 gilt

DBL_EPSILON

kleinster double-Wert x, für den 1.0 + x ungleich 1.0 gilt

LDBL_EPSILON

kleinster long double-Wert x, für den 1.0 + x ungleich 1.0 gilt

FLT_MIN

minimaler normalisierter Gleitpunktwert (float)

DBL_MIN

minimaler normalisierter Gleitpunktwert (double)

LDBL_MIN

minimaler normalisierter Gleitpunktwert (long double)


Natürlich gilt auch bei der Verwendung der Konstanten, die sich in der Headerdatei <float.h> befinden, dass die entsprechende Headerdatei mit eingebunden wird.



Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück
  
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: C von A bis Z

 C von A bis Z
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchtipps
Zum Rheinwerk-Shop: C/C++






 C/C++


Zum Rheinwerk-Shop: Einstieg in C






 Einstieg in C


Zum Rheinwerk-Shop: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Rheinwerk-Shop: C++ Handbuch






 C++ Handbuch


Zum Rheinwerk-Shop: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2009
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern