Hallihallöchen,
Um auch mal wieder was über die C/C++-Programmierung zu fragen will ich hier mal eine Frage zu den Datentypen int und long int loswerden. Wo ist da genau der Unterschied? Ich verwende in meinen Programmen meistens int oder double und eigentlich nie mal long oder single. Was signed und unsigned macht ist mir klar, aber war macht das long und short? Sind die bei 32bit bzw. 64bit eigentlich noch aktuell?
MfG naums
Unterschied Long Int zu Int
Unterschied Long Int zu Int
.globl truth
truth:
mov r0, #42
mov pc, lr
truth:
mov r0, #42
mov pc, lr
- cloidnerux
- Moderator
- Beiträge: 3125
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: Unterschied Long Int zu Int
http://www.proggen.org/forum/viewtopic. ... 3&start=70
http://www.proggen.org/forum/viewtopic.php?f=21&t=372
http://www.proggen.org/doku.php?id=theo ... esentation
Und da gibts noch ein paar mehr threads^^
Generell geht es hierbei um die Variablenlängen.
In C gibt es folgende "Grunddatentypen":
char = 1 byte
int = 2 oder 4 byte
float = 8 Byte
double = 10 Byte
keine Gewähr.
Nun wollte man aber auch kleine und große ints erlauben, dazu dienen die präfixe short und long.
short soll einen verkürzten int darstellen, also 2Byte, long einen "langen" int, wobei das meistens auch nicht länger als int ist, wie in den Threads zu sehen,
Dann hängen die Längen noch vom verwendeten System und Compiler ab.
Wir sollten vlt mal einen Wikieintrag dazu machen...
http://www.proggen.org/forum/viewtopic.php?f=21&t=372
http://www.proggen.org/doku.php?id=theo ... esentation
Und da gibts noch ein paar mehr threads^^
Generell geht es hierbei um die Variablenlängen.
In C gibt es folgende "Grunddatentypen":
char = 1 byte
int = 2 oder 4 byte
float = 8 Byte
double = 10 Byte
keine Gewähr.
Nun wollte man aber auch kleine und große ints erlauben, dazu dienen die präfixe short und long.
short soll einen verkürzten int darstellen, also 2Byte, long einen "langen" int, wobei das meistens auch nicht länger als int ist, wie in den Threads zu sehen,
Dann hängen die Längen noch vom verwendeten System und Compiler ab.
Wir sollten vlt mal einen Wikieintrag dazu machen...
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Unterschied Long Int zu Int
Die sind noch aktuell.naums hat geschrieben:will ich hier mal eine Frage zu den Datentypen int und long int loswerden. Wo ist da genau der Unterschied? Ich verwende in meinen Programmen meistens int oder double und eigentlich nie mal long oder single. Was signed und unsigned macht ist mir klar, aber war macht das long und short? Sind die bei 32bit bzw. 64bit eigentlich noch aktuell?
Schau mal auf diesen Link: limits.h.
Ein int garantiert Dir den Wertebereich von -32768 bis 32767. Das war auf 16 Bit Rechnern üblich. Ein 32 Bit-Integer verletzt diese Garantie nicht. 32 Bit sind auf 32 Bit Rechnern üblich.
Ein long int garantiert den Wertebereich von -2147483648 bis +2147483647 - auch auf 16 Bit Rechnern. Auf 64 Bit könnte der Datentyp grundsätzlich aber auch größer ausfallen. Der wird dann aber häufig als "long long int" bezeichnet.
Es gilt:
char <= short int <= int <= long int <= long long int
Ein Double hat 8 Byte (64 Bit). 80 Bit (10 Byte) hat die Intel-Architektur intern, die als "extended double" bezeichnet wird und von manchen Compilern als "long double" aus dem Prozessor ausgelesen.
Wer auf PowerPC oder Sparc Prozessoren unterwegs ist, kann auch eine 128Bit (16Byte) breite Präzision erhalten, diese werden dann gerne "double double" genannt.
Und weil diese ganze Benennerei im Prinzip Schwachsinn ist, hat C ab C99 exakte Datentypen wie int64_t. Da stellen sich dann nicht mehr so viele Fragen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.