Größe Datentypen
-
Hallo,
ich habe mal folgendes geschrieben:
#include <iostream> int main() { unsigned a=-1; unsigned long b=-1; std::cout <<a <<std::endl <<b; }Die Ausgabe:
4294967295 4294967295Das zeigt ja den höchsten Wert von unsigned (int) und unsigned long an, aber ist long nicht größer als int?
-
Nicht zwangsläufig.
-
Ubuntu
#include <iostream> int main() { unsigned a=-1; unsigned long b=-1; unsigned long long c=-1; std::cout << a << std::endl << b << std::endl << c; }4294967295 18446744073709551615 18446744073709551615Nimm mal
sizeof(long)usw, dann siehst du deren (byte) Länge
-
Hängt vom System ab, ist also nicht überall gleich.
Früher bei 16Bit ware zum Beispiel int 16 Bit und long 32 Bit.
Bei mir ist int und long beides 32 Bit.http://www.datasource.de/programmierung/tab33_cppdatentypen.html
Aber wie mein Vorredner schon sagte, schau am besten mit sizeof( datentyp ) nach dann weißt du wie es auf deinem System ist;-)
Lg freeG
-
LLP64 (windows)
short 16-bit
int 32-bit
long 32-bit
long long 64-bit
pointer 64-bitLP64 (meist Unix oder Unixoide (Mac OS X, Linux Derivate, Solaris etc...) ):
short 16-bit
int 32-bit
long 64-bit
long long 64-bit
pointer 64-bitILP64 (komische Systeme)
short 16-bit
int 64-bit
long 64-bit
long long 64-bit
pointer 64-bitSILP64 (kenn ich nix)
alles 64-bit
-
padreigh schrieb:
Ubuntu
UINT_MAX : 4294967295 ULONG_MAX : 18446744073709551615 ULLONG_MAX: 18446744073709551615Das gilt nur für 64-Bit Versionen
Bei meinem 32-Bit Ubuntu ist ein long auch nur 32 Bit breit.
-
Achso, ok. Danke für die Antworten, überigs habe ich auch schon vorher mir
sizeofnachgeguckt und habe mich da ebenso gwundert, aber jetzt ist alles klar.