Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

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

AW: Ordnergröße ermitteln

  Alt 17. Dez 2023, 17:57
Nja, das ist ein 32-Bit UInt und wenn man da alles um 32 Bit nach links verschiebt, dann rutscht alles raus und ist weg.
Der Compiler kommt auch nicht immer auf die Idee sowas von sich aus einfach so zu vergrößern (normal maximal bis zur Größe eines Registers)

So := Int64(TempSize.nFileSizeHigh) shl 32 or TempSize.nFileSizeLow; wäre es demnach schon sicherer,

aber wie schon genannt ... Warum nicht einfach F.Size, anstatt F.FindData.nFileSize* ?



PS: Da wir hier Signed rechnen, ist es binär sicherer, als arithmetisch.

OK, man könnte auch := Int64(UInt64(TempSize.nFileSizeHigh) shl 32) + TempSize.nFileSizeLow; , aber warum.
z.B. gäbe es Probleme und die Größe wäre z.B. -1, dann würde es nach Umrechnung mit einer signed Addition einen anderen Wert ergeben.

Alternativ einfach nur casten und garnicht rechnen.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (17. Dez 2023 um 18:04 Uhr)
  Mit Zitat antworten Zitat