Forum: Algorithmen, Datenstrukturen und Klassendesign
by Michael II,
25. Jul 2018
Danke himitsu,
wer mit C64 und Co gross geworden ist oder ein 1. Semester Informatik besucht hat, kann Dinge wie shl und shr sicher beim ersten Hingucken lesen.
Für Exponent=0 (0=Byte), sollte der Multiplikator 1 sein, also doch besser (?):
Multiplikator := 1 shl (10 * Exponent)
Wenn wir in Delphi mit Multiplikator vom Typ uint64 arbeiten wollen:
Multiplikator := uint64(1) shl (10 *...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Michael II,
25. Jul 2018
Nicht gut: Durch Umwandlung von uint64 zu double und zurück zu uint64 verlierst du bei grossen Zahlen an Präzision.
Grund: double ist nur auf ca. 15 Stellen (dezimal) präzis während uint64 Werte 19 stellig sein können.
http://docwiki.embarcadero.com/RADStudio/Tokyo/de/Interne_Datenformate_(Delphi)
Beispiele:
9000000000000000512 wird durch Umwandlung in double und zurück zu uint64 zu...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Michael II,
24. Jul 2018
Nützt nix. Wie bereits weiter oben erwähnt werden Werte vom Typ int64 in 64 Bits gespeichert.
1024(10) = 10000000000(2) (eine 1 mit 10 Nullen)
1024^2(10) = 100000000000000000000(2) (eine 1 mit 20 Nullen)
1024^3(10) = 1000000000000000000000000000000(2) (eine 1 mit 30 Nullen)
...
1024^7(10) ergibt binär eine 1 mit 70 Nullen, also eine 71 stellige binäre Zahl.
ABER: Die grösste...