Die System-Routinen scheinen wohl bis D2005 ein Problem mit Int64 zu haben, nicht einmal ein explicit Cast funktioniert. Über eine Real-Variable (bzw. gleich als Parameter) oder eine nicht-
ASM Funktion funktioniert die Routine aber auch mit meinem Delphi 6:
Index := Trunc(Math.LogN(2, ASize) / 10);
Zitat von
ichbins:
übrigens ist es sinnlos, so große Einheiten anzugeben, da ein int64 nur bis zu 2^64 geht, d.h. Exabytes (bis 2^69,999) würden vollkommen ausreichen.
Der Kommentar im Code ist nicht zufällig genau so eingerückt, wie er oben steht.
Zitat von
ichbins:
[
OT]Der Wikipedia-Artikel (oben verlinkt) schreibt für Kilobytes die Einheit KiB vor
[/
OT]
Und wer hält sich daran
? Bevor ich den User komplett verwirre, gebe ich lieber eine streng genommen falsche Einheit aus.