Konstante INT_MAX < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
hallo,
Besitzt die Konstante INT_MAX (aus der Bibiothek climits immer den selben Wert? Wenn nein wovon ist es abhängig?
vielen dank
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 09:05 Fr 09.07.2010 | Autor: | felixf |
Moin
> Besitzt die Konstante INT_MAX (aus der Bibiothek climits
> immer den selben Wert? Wenn nein wovon ist es abhängig?
Der Wert haengt vom Compiler und vom System, fuer das dein Programm kompiliert wird, ab. Normalerweise ist ein int der "natuerliche" Ganzzahldatentyp der Ziel-CPU, und INT_MAX sagt dir den maximalen Wert den ein int annehmen kann.
Das kann auf einem 16-Bit-System etwa [mm] $2^{16-1} [/mm] - 1$ sein, auf einem 32-Bit-System [mm] $2^{32-1}-1$, [/mm] auf einem 64-Bit-System [mm] $2^{64-1}-1$, [/mm] muss aber nicht.
LG Felix
|
|
|
|
|
ok vielen dank -
gruss
martina
|
|
|
|
|
Jap, um ein Gegenbeispiel zu nennen:
Die PIC18 Microcontroller-Familie von Microchip hat 8 Bit. Die Firmware der Dinger läßt sich in C schreiben und mit nem eigenen Compiler, dem C18 übersetzen.
Trotz der physischen 8 Bit besitzt das INT dort 16 Bit, erst das LONG hat 32Bit.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:58 Fr 09.07.2010 | Autor: | felixf |
Moin
> Jap, um ein Gegenbeispiel zu nennen:
>
> Die PIC18 Microcontroller-Familie von Microchip hat 8 Bit.
> Die Firmware der Dinger läßt sich in C schreiben und mit
> nem eigenen Compiler, dem C18 übersetzen.
> Trotz der physischen 8 Bit besitzt das INT dort 16 Bit,
> erst das LONG hat 32Bit.
Ich habe mal gelesen, dass ein int mindestes 16 Bit umfasst. Leider habe ich den ISO-C-Standard nicht da und kann es nicht ueberpruefen; im ISO-C++-Standard wird an der Stelle auf den ISO-C-Standard verwiesen...
LG Felix
|
|
|
|