Einzelnen Beitrag anzeigen

Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#1

Datentyp "Int64" fehlerhaft?

  Alt 18. Jun 2017, 22:56
Delphi-Version: 5
Hallo Delphifreunde!

Im Anhang befindet sich ein mit Delphi 4 erstelltes Kleinprojekt, das ein merkwürdiges Verhalten mit dem Datentyp Int64, auf das ich stieß, demonstrieren soll.

Los geht es mit dem Wert 2048.

Die damit gefüllte Int64-Variable wird zunächst mit 32, dann mit 16 linksverschoben. Bis dahin ist noch alles in Ordnung.

Beim nächsten shl (um 4) wird der Wert erstmalig negativ. Soweit noch nichts schlimmes, nur bekomme ich diese negative Vorzeichen nicht beseitigt. Weder mit abs, mit "-" noch die Multiplikation mit -1 können daran etwas ändern.

Ich versuchte sogar den umständlichen Weg über inttostr, dann vom String das erste Zeichen abzuschneiden und zum Schluß mit strtoint64 an den positiven Wert zu gelangen, doch das gibt eine Fehlerausgabe. Das liegt, wie ich herausfand, daran, daß die äußerste Funktion - strtoint64 - an dem um das Minuszeichen befreiten String scheitert.

Compilate von Delphi 5, 6, 7 und Turbo-Delphi zeigen das gleiche (Fehl-?)Verhalten.

Ist dieses Verhalten Euch bekannt? Gibt es sonst noch eine Lösung, das zu beseitigen?

M.E. ist das ein klarer Fehler.

Vielen Dank im voraus und beste Grüße

Delphi-Laie
Angehängte Dateien
Dateityp: zip Int64-Fehler.zip (149,6 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat