Einzelnen Beitrag anzeigen

DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#32

AW: Power funktioniert nicht wie gedacht

  Alt 25. Jul 2018, 08:54
Vielleicht ist es so klarer.

Ich habe einen numerischen Wert und die Zusatzinformation, ob das B, KiB, MiB, GiB oder TiB sein sollen.

Rufe ich meine (umbenannte) Funktion nun so auf, erhalte ich 46080 Bytes.
Delphi-Quellcode:
type
  TFileSizes = (_B, _KiB, _MiB, _GiB, _TiB, _PiB);

Ausgabe := ConvertToBytes(45, _KiB);
Ich speichere also irgendwo auf der Festplatte 45 sowie die Zusatzinfo (Speichergröße) ab statt große Zahlen.

Zitat:
// Welchen Wert hat Result, wenn Multiplyer 0 ist?
Im Beispiel oben wären das 45 (Bytes).

Zitat:
if Result > MaxSize then
Result := MaxSize; // das tut in der Seele weh
Warum sollte man jemals höher als 1 EiB gehen? So große Datenmengen gibt es sicherlich insgesamt. Aber ich habe im privatanwenderbereich noch niemanden gesehen, der eine einzelne Datei hat die so groß ist. Angenommen durch falsche Eingaben hat Result schließlich einen Wert von 1 YiB, dann führt das zu einem Fehler.
Da im im weiteren Verlauf aber zwingend Int64 brauche, kann ich hier keine Fließkommazahlen nutzen.

Zitat:
Result := UInt64(1) shl (Multiplier* 10) // Das versteht keiner auf den ersten Blick.
Das ist dasselbe wie Power(1024, 2).

Zitat:
// das tut in der Seele weh
Hilfe nehme ich sehr gerne an! Ich meine jetzt keine Seelenhilfe oder so sondern programmiertechnisch.

Geändert von DieDolly (25. Jul 2018 um 09:07 Uhr)
  Mit Zitat antworten Zitat