JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=1cbab11b113f956de7dc13296649a18aMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Eigener Datentyp?
Gehe zu Seite 1, 2, 3  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 04.01.2003, 12:33    Titel: Eigener Datentyp? Antworten mit Zitat

Welcher mathematischer Datentyp (wie int, long, etc..)

kann eine bis zu 60 stellige Zahl darstellen?

Zum Beispiel so eine Zahl:

574635942674359435128534976145297648741297354879526326598545

In übersichtlicher Schreibweise:
574.635.942.674.359.435.128.534.976.145.297.648.741.297.354.879.526.326.598.545

sie soll/muss keine Nachkommastellen unterstützen...

Oder gibt es noch nicht so einen Datentyp?

Wie kann ich dann so einen selber erstellen?

Vielen Dank schon Mal für eure Bemühungen!!! Smile
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Salim
Mini JLI'ler



Anmeldedatum: 29.12.2002
Beiträge: 12

Medaillen: Keine

BeitragVerfasst am: 04.01.2003, 13:27    Titel: Salim Antworten mit Zitat

Ich glaube nicht, dass es so einen Datentyp gibt. Wie man eine eigene macht weiß ich auch nicht. Ich weiß nur das es richtig viel speicher frisst, so ein langes ...
Ich könnte mir aber einige alternativen vorstellen:
Wie wärs wenn du mit char ein Feld machst? char* Zahl[60];
Wie wärs wenn du dir eine struktur machst.
struct Zahl
{
short Ziffern1bis5;
short Ziffern6bis11;
...
}
_________________
A.Salim Doost
www.asdnet.de
Es gibt immer einen besseren Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen MSN Messenger
gl_echse
JLI'ler



Anmeldedatum: 01.01.2003
Beiträge: 105

Medaillen: Keine

BeitragVerfasst am: 04.01.2003, 13:39    Titel: Antworten mit Zitat

Du kannst ja ne klasse machen die immer 3 ziffern in nen int-vector bereich speichert und dann ne ausgabefunktion die dazwischen immer n . mit ausgibt (dann string als rückgabe)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 04.01.2003, 14:01    Titel: Antworten mit Zitat

Das wäre alles zu umständlich atoi, etc.. zu verwenden ich muss mit der ganzen Zahl Diffisionen, Modulationen und zuletzt Additionen durchführen können...

Ach und im gesamten Programm brauche ich da so schötze ich Mal... 20 Stück Smile und es kommen nicht wesentlich mehr andere Variablen drin vor Smile
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jörg
JLI MVP
JLI MVP



Anmeldedatum: 19.07.2002
Beiträge: 182
Wohnort: Siegen/NRW
Medaillen: Keine

BeitragVerfasst am: 04.01.2003, 14:22    Titel: Antworten mit Zitat

double sollte eigentlich funktionieren, der Wertebereich ist von 2,22507e-308 bis 1,79769e308 (also bis 308 Vorkommastellen (wenn ich das nicht falsch verstanden habe)). Hat zwar Nachkommastellen, das dürfte aber nicht stören. (Angaben ohne Gewähr)
_________________
www.messiahzone.de.vu
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 04.01.2003, 22:10    Titel: Antworten mit Zitat

Nein bei double könnte man von der Zahl nur die ersten 19 Zeichen eingeben:

5746359426743594351

5.746.359.426.743.594.351

Hat sonst noch jemand Ideen?
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 04.01.2003, 23:05    Titel: Antworten mit Zitat

Eine Frage: Wofür brauchst du das? Wenn du den Zweck sagen würdest könnte man sich eventuell Alternativen überlegen.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sören
JLI Master Trainee



Anmeldedatum: 26.07.2002
Beiträge: 647
Wohnort: Bonn
Medaillen: Keine

BeitragVerfasst am: 04.01.2003, 23:15    Titel: Antworten mit Zitat

Mir würde nur DWORD einfallen, ist zwar 32Bit allerdings wohl immer noch nicht lang genug! Du könntest vielleicht die Zahl auf mehrere ints,dwords usw. verteilen! Wie Hazel bereits sagte, wäre nicht schlecht, wenn du sagen würdest, was du vor hast!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 04.01.2003, 23:35    Titel: Antworten mit Zitat

ich weiß nicht ob es geht, aber probier mal __int64
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 44
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 05.01.2003, 11:04    Titel: Antworten mit Zitat

Der Datentyp __int64 ist zwar schon richtig, aber wahrscheinlich noch nicht lang genug. Sucht mal nach BigInteger-Bibliotheken im Internet - da gibt es einige freie varianten, auch für Windows...
In c# gibt es noch den Datentyp Decimal - der kann sowas auch, aber den gibt es nicht in c++...

AFE-GmdG
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 05.01.2003, 14:18    Titel: Antworten mit Zitat

Ja ich wollte auch grade Decimal erwähnen...128Bit ...wäre aber immer noch etwas zu wenig... Sad

double ist doch schon 64Bit?


Das Programm soll alle Primzahlen bis auf eine 60 stellige Zahl herausfinden und abspeichern, dazu alle Vollkommene Zahlen und zum Schluss noch die befreundete Zahlen.

Weiß jeder was damit gemeint ist, oder soll ich es doch lieber erklären?

Ich glaube nicht, dass es da für eine andere gute Lösung außer einen geigneten Datentyp... Sad
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 44
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 05.01.2003, 20:07    Titel: Antworten mit Zitat

Double ist nicht 64 bit - sondern 80 bit breit. Die Darstellungsweise ist allerdings anders, als bei Integer, es handelt sich ja um Fließpunktzahlen.
OK - was eine Primzahl ist, weiss wohl jeder, aber was zum Teufel sind vollkommene oder befreundete Zahlen?
Für dieses Problem eignet sich am besten eine der zahlreichen BigInteger-Datentypen, ich werde bei gelegenheit mal eine passende Bibliothek suchen, wenn mir nicht jemand zuvorkommt, da ich gerade nicht so viel Internetzeit hab.

Bis Bald, AFE-GmdG
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
gl_echse
JLI'ler



Anmeldedatum: 01.01.2003
Beiträge: 105

Medaillen: Keine

BeitragVerfasst am: 05.01.2003, 20:14    Titel: Antworten mit Zitat

Schpeicher dass doch hexadezimal in nen string oder in ne chararray.

Zum rechnen kannste ja die anderen zahlen au un das hexadezimale umrechnen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 05.01.2003, 20:26    Titel: Antworten mit Zitat

@Afe: Ich glaubg nich das hier jeder weiß was ne Primzahl is Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
gl_echse
JLI'ler



Anmeldedatum: 01.01.2003
Beiträge: 105

Medaillen: Keine

BeitragVerfasst am: 05.01.2003, 20:34    Titel: Antworten mit Zitat

Stimmt du wohl nicht
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Gehe zu Seite 1, 2, 3  Weiter
Seite 1 von 3

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum