AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Unnamed-Projekt > BigInt, MD5, RipeMD320, SHA, Streams usw.
Thema durchsuchen
Ansicht
Themen-Optionen

Unnamed-Projekt > BigInt, MD5, RipeMD320, SHA, Streams usw.

Ein Thema von himitsu · begonnen am 23. Mai 2008 · letzter Beitrag vom 19. Feb 2016
 
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.343 Beiträge
 
Delphi 12 Athens
 
#2

Unnamed-Projekt > BigInt, MD5, RipeMD320, SHA, Stream usw

  Alt 25. Mai 2008, 14:44
So, 's wurde noch was zur TBigInt hinzugefügt:
Log2
Log10
LogN
Sqrt
Radic (Wurzelziehen/Radizieren mit belibiger Potenz)
Fibonacci
(Test- und Democodes aktuell in Project1.dpr)

Außerdem hab ich die Typenumwandlung (Implicit/Explicit) etwas überarbeitet

und es gibt jetzt eine explizite Typenumwandlung von Extended nach TBigInt.
(mit dem normaltem "Trunc" brauchte man ja bei Zahlen größer Int64 garnicht erst anfangen )
I := TBigInt(E); wobei nur die ersten 18/19 Stellen des Ganzzahlaneiles übernommen und der Rest mit 0 gefüllt wird.

folgendes Testschleifchen befindet sich noch in der Project1.dpr
Delphi-Quellcode:
E := 0.123;
For i5 := -3 to 100 do Begin
  I := TBigInt(E);
  S := I.asString;
  If (E > 0) or (S <> '') Then ;

  E := E * 10;
End;
Zitat:
Ergebnis: (Extended = TBigInt)
0.123 = 0
1.23 = 1
12.3 = 12
123 = 123
1230 = 1230
12300 = 12300
...
1.23e11 = 123000000000
...
1.23e50 = 12300000000000000000000000000000000000000000000000 0
...


-----------------

123456789012345678901234567890000000 = 1.2345678901e35 = 123456789012345679000000000000000000

Dann hab ich (da sich wer über das LongInt-geeiere "beschwert" hat) da auch mal was umgestellt und dieses Problem in eine kleiner Ecke verschoben.
Nur nett, daß ich gestern dieses in 'ner halben Stunde fertig hatte und heute nochmal 2 Stunden den dadurch enstandenn Rechenfehler suchen durfte ... was so ein Vorzeichen alles bewirkt

Und man kann jetzt auch endlich Vergleiche mit Extended durchführen ( < > <= >= = ......) ... ging vorher mangels passender Typenumwandlung nicht.


Neue Version + kleine Ergänzung (siehe [neu]) im ersten Post.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
 


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 10:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz