länge von long

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

länge von long

Beitrag von cloidnerux » Sa Dez 27, 2008 6:00 pm

Ich hab folgendes Programm Geschrieben:

Code: Alles auswählen

#include <iostream>
#include <conio.h>

int main()
{
    std::cout << "Länge von Int:" << sizeof(unsigned int) << std::endl;
    std::cout << "Länge von long:" << sizeof(unsigned long) << std::endl;
    std::cout << "Länge von long long:" << sizeof(unsigned long long) << std::endl;
    getch();     //ich weiß, das tuht man nicht
    return 0;
}
Bei der Auführung:

Code: Alles auswählen

Lõnge von Int:4
Lõnge von long:4
Lõnge von long long:8
Heißt das, das es keinen unterschied zwischen int und long gibt?
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: länge von long

Beitrag von Dirty Oerti » Sa Dez 27, 2008 8:08 pm

Das ist je nach Computer, auf dem du das ausführst unterschiedlich.
Auf älteren Modellen ist ein int nämlich nur 2 Byte groß...
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: länge von long

Beitrag von cloidnerux » Sa Dez 27, 2008 8:13 pm

ähm
Lõnge von Int:4
Lõnge von long:4
Hab das ganze unter Windows XP 32 Bit getestet.
Hier war ein INt 4 Byte lang, long auch.
Ist das ganze nur unter Windows so oder generell?
Redundanz macht wiederholen unnötig.
quod erat expectandum

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: länge von long

Beitrag von nufan » Sa Dez 27, 2008 8:28 pm

cloidnerux hat geschrieben:Ist das ganze nur unter Windows so oder generell?
Bei mir kommt unter Ubuntu das gleiche.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: länge von long

Beitrag von cloidnerux » Sa Dez 27, 2008 8:33 pm

Bei mir kommt unter Ubuntu das gleiche.
Ist aber iwi schwachsinnig. Wozu gibt es denn den bezeichner long, wenn er nicht mehr als int speichern kann?
Aber long ist warscheinlich nur ein Überbleibsel aus 16-Bit zeiten, wo int noch 2-Byte länge hatte.
Denn wenn long 8-Byte belege, dann wäre long long unötig. und ältere Programme würden evt. net richtig laufen.
Scheiß Abwärtskompatibilität.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: länge von long

Beitrag von Dirty Oerti » Sa Dez 27, 2008 9:38 pm

Dirty Oerti hat geschrieben:Das ist je nach Computer, auf dem du das ausführst unterschiedlich.
Wenn ich es schreien könnte, dann würde ich.^^
das hängt von deiner Hardware ab. Aktuelle Computer liefern alle das gleiche Ergebnis wie das von deinem Computer.
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: länge von long

Beitrag von nufan » Sa Dez 27, 2008 10:01 pm

Dirty Oerti hat geschrieben:Wenn ich es schreien könnte, dann würde ich.^^
Kannst ja eine mp3 aufnehmen und uploaden :D

Benutzeravatar
+Fuss+
Beiträge: 385
Registriert: Fr Nov 14, 2008 8:16 pm

Re: länge von long

Beitrag von +Fuss+ » Sa Dez 27, 2008 10:22 pm

Dafür haben wir ja extra das "Medien-Forum".

Bei mir kommt allerdings auch 4 4 8 raus, was ja kein Wunder ist, wie oben erklärt wurde...

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: länge von long

Beitrag von Kerli » So Dez 28, 2008 11:31 am

Die Größe der Datentypen hängen von vielen Faktoren ab. Dazu zählen neben der Hardware aber auch vor allem auch die verschiedenen Standards und Betriebssysteme und damit natürlich auch die Compiler.

Im C bzw. C++ Standard ist zum Beispiel nur garantiert, dass ein char 1 Byte groß ist, es ist aber nicht einmal sicher, dass dieses Byte auch aus 8 Bit besteht :)
Für die anderen Datentypen gilt laut Standard nur, dass die "kleineren" Datentypen nicht größer sein dürfen als die "größeren". Ein int ist also garantiert nicht größer als ein long.

Wer eine garantierte Bitbreite braucht der sollte sich einmal die Integer-Bibliothek von Boost anschauen.
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: länge von long

Beitrag von Xin » Di Dez 30, 2008 6:29 am

cloidnerux hat geschrieben:Ist aber iwi schwachsinnig. Wozu gibt es denn den bezeichner long, wenn er nicht mehr als int speichern kann?
Aber long ist warscheinlich nur ein Überbleibsel aus 16-Bit zeiten, wo int noch 2-Byte länge hatte.
Denn wenn long 8-Byte belege, dann wäre long long unötig. und ältere Programme würden evt. net richtig laufen.
Scheiß Abwärtskompatibilität.
long wird vermutlich 64 Bit groß werden, wobei long long dann 128 Bit würde.

int ist schließlich auch von 2 auf 4 Byte gewachsen.

Das ist in den meisten Fällen auch kein Problem, denn nur weil kleine Zahlen gespeichert werden, läuft ein long dann ja nicht über.
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.

Antworten