Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
|
|
22.11.09, 19:02
|
#36
|
Softwareentwickler
Registriert seit: Sep 2008
Beiträge: 343
Bedankt: 432
|
Statt fPrintF einach mal WriteLn mit selben Parametern verwenden.
__________________
"Sänk ju for träwelling wis Deutsche Bahn!"
|
|
|
23.11.09, 15:08
|
#37
|
Hat eine Nase
Registriert seit: Oct 2008
Beiträge: 314
Bedankt: 115
|
Auch auf die Gefahr mich damit jetzt zu blamieren, poste ich es mal^^
Code:
#include <fstream>
using namespace std;
int main()
{
double float Zahl = 0000000000000000;
ofstream fout( "Zahlen_Liste.txt" );
fout << Zahl++;
if(i==9999999999999999)
{
}
}
Mein Problem besteht jetzt darin, mit was für einem Typen kann ich diese große Zahlen Menge beschreiben.
Und Wenn es bei 9999.... angelangt ist soll es aufhören, also was gehört da jetzt in die if Anweisung?
|
|
|
23.11.09, 17:28
|
#38
|
Mitglied
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 454
Bedankt: 137
|
lies dir mal den n! thread durch. da hatten wir das thema.
Code:
double float Zahl = 0000000000000000;
// da kannste auch gleich = 0; schreiben
if(i==9999999999999999)
???
zahl ist double, i ??? ich nehme mal an int (oder long)
i kann auf einem 32bit system max 2^32 groß sein.
__________________
entropie erfordert keine wartung
|
|
|
23.11.09, 18:20
|
#39
|
Hat eine Nase
Registriert seit: Oct 2008
Beiträge: 314
Bedankt: 115
|
Hatte ich wohl vergessen zu ändern, hab da einfach wild ausprobiert.
Demnach kann ich eine 16 stellige Zahl darstellen?
Da long ja nur Zahlen bis 2^32 darstelen kann, im Buch finde ich aber auch nix was darauf hindeutet
|
|
|
23.11.09, 18:37
|
#40
|
Mitglied
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 454
Bedankt: 137
|
2^32 == 4294967296
das ist eine 10-stellige zahl...
falls du ein 64-bit system hast:
2^64 == 8589934592 immer noch 10-stellig.
mehr gibt dein prozessor jedenfalls für native typen (int, long, long long) einfach nicht her.
wenn du mehr stellen willst musst du das emulieren. siehe n! thread.
__________________
entropie erfordert keine wartung
|
|
|
23.11.09, 21:20
|
#41
|
Hat eine Nase
Registriert seit: Oct 2008
Beiträge: 314
Bedankt: 115
|
Hab ein 32 Bit System
Das sieht mehr sehr zu komplex aus, verstehe da kaum was, besonders das mit dem emulieren.
Ich möchte nämlich nur ein Programm schreiben, das es mir alle Zahlen im 16 stelligen Bereich nur aufschreibt (nix rechnet oder ähnliches)
|
|
|
23.11.09, 22:47
|
#42
|
Mitglied
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 454
Bedankt: 137
|
Zitat:
Das sieht mehr sehr zu komplex aus, verstehe da kaum was, besonders das mit dem emulieren.
|
in dem fall kurz und knapp: vergiss es. 2^32 ist und bleibt deine magische grenze. vorerst jedenfalls
__________________
entropie erfordert keine wartung
|
|
|
18.12.09, 19:29
|
#43
|
Hat eine Nase
Registriert seit: Oct 2008
Beiträge: 314
Bedankt: 115
|
Also das mit der Fakultät hab ich hinbekommen, versteh aber imme rnoch nicht wie er es dadurch so hohe Zahlen ausgeben kann. Aber hat sich erledigt
urga den Code für die änderung der Farbe der Schrift ist sehr komplex. Ich hab da einen leichteren gefunden:
Code:
[...]
system("color 2"); //Zahl Variiert^^
[...]
|
|
|
04.01.10, 08:31
|
#44
|
Erfahrener Newbie
Registriert seit: Oct 2009
Beiträge: 112
Bedankt: 22
|
also ich finde programmiereren immer am schönsten, wenn man wie beim "programmieren" von Adobe Dreamweaver wenig selber machen muss und es schon viele Einstellungsmöglichkeiten gibt.
So spare ich mir Nerven, und Zeit. Und es ist entspannend. Sonst wenn ich nur den Editor oder auch Notepad öffne, und zu programmieren anfang, bin ich nach kurzer Zeit schon genervt warum irgendwas nicht funktioniert.
Und in VB finde ich die Einfachheit so schön.
|
|
|
06.01.10, 01:46
|
#45
|
Newbie
Registriert seit: Jun 2009
Beiträge: 74
Bedankt: 26
|
Zitat:
Zitat von urga
2^32 == 4294967296
das ist eine 10-stellige zahl...
falls du ein 64-bit system hast:
2^64 == 8589934592 immer noch 10-stellig.
mehr gibt dein prozessor jedenfalls für native typen (int, long, long long) einfach nicht her.
wenn du mehr stellen willst musst du das emulieren. siehe n! thread.
|
Erstens ist das komplett falsch gerechnet. 2^64 ist nicht das Doppelte von 2^32
Das richtige Ergebnis ist natürlich 18446744073709551616.
Ich glaube du bringst da sowieso ein paar Sachen durcheinander. Du berechnest über die Busbreite vom Adressbus die Anzahl der möglichen Byte, die adressiert werden können. Bei einem 32 Bit System sind das folglich 2^32 mögliche Kombinationen, du kannst also über 4 Milliarden Bytes = 4 Gigabyte damit adressieren. Bei einem 64 Bit System sind es also 2^64 mögliche Bytes, die dir ermöglichen rein theoretisch über 16000 Terabytes an Speicher zu adressieren. Das sind über 16 Milliarden Gigabytes.
Deine Rechnungen haben grundsätzlich erstmal nichts mit der Größe von Datentypen zu tun. Ein Char ist 8 Bit groß, belegt also eine Speicheradresse. Ein normales Int ist 32bit groß, belegt also schonmal vier Adressen. Und ein Long ist 64bit = 8 Adressen = 8 Bytes groß und ermöglicht dir wie schon beschrieben bis zu 18446744073709551616 zu rechnen.
@Dennka
Selbstverständlich kannst du mit einem unsigned long mit deinen 16stelligen Zahlen rumrechnen.
|
|
|
06.01.10, 05:58
|
#46
|
Banned
Registriert seit: Sep 2009
Ort: /root/
Beiträge: 825
Bedankt: 640
|
ein int ist nicht immer 32 bit lang. das kommt aufs system an. lediglich bei char kann man von einer festen größe ausgehen.
|
|
|
06.01.10, 07:33
|
#47
|
Newbie
Registriert seit: Jun 2009
Beiträge: 74
Bedankt: 26
|
Ja, da hast du Recht. Es kommt auch auf die verwendete Hochsprache wiederum an. Ich meinte das auch eher als Rechenbeispiel.
|
|
|
06.01.10, 13:51
|
#48
|
Banned
Registriert seit: Sep 2009
Ort: /root/
Beiträge: 825
Bedankt: 640
|
Es kommt auf nicht auf die Sprache sondern auf das System (bzw die zugrunde liegende Architektur) an.
|
|
|
06.01.10, 15:45
|
#49
|
Newbie
Registriert seit: Jun 2009
Beiträge: 74
Bedankt: 26
|
Natürlich kommt es auch auf die Hochsprache an. Auf Hardwareebene werden vom CPU bestimmte integrale Datentypen unterstützt. In manchen Hochsprachen ist man aber wesentlich flexibler, denn dort werden Vielfache des Hardwaremaximums unterstützt. C/C++ bietet zum Beispiel auch die Möglichkeit int von 8 - 64 Bit Größe zu deklarieren.
Die Größe der deklarierbaren Variablen richtet sich also nach System UND verwendeter Hochsprache.
|
|
|
06.01.10, 18:45
|
#50
|
Banned
Registriert seit: Sep 2009
Ort: /root/
Beiträge: 825
Bedankt: 640
|
Das sind aber Komplexe Datentypen die aus mehreren Grunddatentypen bestehen, in C++ z.B. struct, class, und enum. Das ist schön das ich 4 Ints aneinandereihen kann. Int an sich ist und bleibt 32 Bit auf nem 32 Bit System. Das aber bei rechnungen mit diesen zusammengesetzten Datentypen ganz anders gearbeitet wird solltest du auch beachten.
|
|
|
06.01.10, 21:43
|
#51
|
Newbie
Registriert seit: Jun 2009
Beiträge: 74
Bedankt: 26
|
So wie du das beschreibst, ist es natürlicher völliger Nonsens. Aber bleib ruhig bei deiner Annahme, ich hab auch nicht die Zeit hier stundenlang "Nachhilfe" zu leisten.
Ansonsten einfach mal hinsichtlich 32/64bit Architekturen einlesen und vor allem zu den Unterschieden zwischen integralen und komplexen Datentypen.
|
|
|
06.01.10, 22:02
|
#52
|
Banned
Registriert seit: Sep 2009
Ort: /root/
Beiträge: 825
Bedankt: 640
|
erklärs doch wenn du 's besser weißt.
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:46 Uhr.
().
|