AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zu Strings

Ein Thema von maximus Caesar · begonnen am 3. Sep 2007 · letzter Beitrag vom 3. Sep 2007
Antwort Antwort
Seite 2 von 2     12   
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#11

Re: Frage zu Strings

  Alt 3. Sep 2007, 16:10
Inzwischen sollte klar sein, dass deine Messwerte als Strings immer mehr Platz benötigen, als ein binärer Datentyp wie Single, Real oder Double.
Jetzt kommt es noch auf den Wertebereich und die Genauigkeit an.
Man könnte mit einem Festkommaformat viel an Platz und Gewschwindigkeit verbessern.
Angenommen, du bräuchtest nur eine Nachkommastelle. Das entspräche (aufgerundet )4 Bit.
Ein Integer mit 27 Bit+(1Bit Vorzeichen) für die Vorkomma und 4 Bit für die Nachkommastellen wäre dann sehr effizient.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#12

Re: Frage zu Strings

  Alt 3. Sep 2007, 16:11
Warum nimmst Du denn dann keinen Single?
Müsste doch reichen für Deine Zwecke...

Code:
Typ     Bereich                 Signifikante Stellen Größe in Byte  
Real48   -2,9 x 10^39 .. 1,7 x 10^38         11-12          6   
Single  -1,5 x 10^45 .. 3,4 x 10^38         7-8            4   
Double  -5,0 x 10^324 .. 1,7 x 10^308       15-16          8   
Extended  -3,6 x 10^4951 .. 1,1 x 10^4932   10-20         10   
Comp    -2^63+1 .. 2^63 1                   10-20          8
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: Frage zu Strings

  Alt 3. Sep 2007, 16:44
Zitat von maximus Caesar:
Die Zahlen haben maximal 3 Vorkomma und 2 Nachkomma Stellen...
Dann reicht doch ein Integer vollkommen, die beiden hintersten Stellen legst du dann einfach als Nachkommastellen fest.
Zum Umwandeln in Real kannst du dir dann etwa solche Funktionen basteln:
Delphi-Quellcode:
function RealToMeinFormat(const Value: Real): Integer;
begin
  Result := Trunc(Value * 100);
end;

function MeinFormatToReal(const Value: Integer): Real;
begin
  Result := (Value div 100) + (Value mod 100) / 100;
end;
Die Speicherung deiner Datensätze als Integer dürfte ziemlich effizient sein, ein Integer benötigt nur 4 Byte.

//Nachtrag:
@RavenIV: Single ist ziemlich ungenau bei einer festen Anzahl an Nachkommastellen.
Er hat 2 Nachkommastellen bei seinen Daten und das wird bei Single schnell ungenau.
Beispiel: 1,73 wird bei Single zu 1,73000001907349.
Deswegen würde ich ein Integer bevorzugen, hier kann es keine Rundengsfehler geben und benötigt genauso viel Speicherplatz wie ein Single.
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz