![]() |
Re: Integerüberlauf bei Cardinalmultiplikation?
Zitat:
Zitat:
Beispiel (für 4-Bit x 4-Bit => 8-Bit):
Code:
(die unteren 4 Bits sind gleich)
1010 x 0101 = (10 x 5) = 50 = 0011[b]0010[/b]
1010 x 0101 = (-6 x 5) = -30 = 1110[b]0010[/b] Das Problem ist, dass er danach über das Carry-Flag prüft ob ein Überlauf eingetreten ist (was bei imul der Fall ist, bei mul aber nicht) - und das ist falsch. Aber wenn's mit Service Packs behoben wird, dann ist's ja in Ordnung. IMHO ist aber durchaus sinnvoll, für ein Release die Überlaufprüfung auszuschalten. (Edit: Tippfehler korrigiert) |
Re: Integerüberlauf bei Cardinalmultiplikation?
net wirklich ... in der System-Unit gibt ja z.B. einige Routinen für die 64-Bit-Berechnung (je eine Variante mit und eine ohne Vorzeichen) und der Compiler nimmt halt mit Vorliebe die nur die signed-Versionen auch wenn es sich um LargeWord (unsigned) handelt ... vom aufbau her sind allerdings beide Prozeduren her fast gleich lang.
(ohne Überlaufprüfung) gibt es bei der Addition/Substraction kein Probleme und bei der multiplication fällt es auch kaum auf ... aber wenn man mal die divisionen(mul/div) betrachte . dann sieht das net mehr so net aus -.-'' aus diesem Grud hab i mir z.B. diese Funktionen mal extrahiert und rufe sie jetzt direkt auf (i nehme halt die Verantwortung dem Delphi ab) |
Re: Integerüberlauf bei Cardinalmultiplikation?
Hab' auch gerade mal in die System-Unit geschaut. Bei den vorzeichenbehafteten 64-Bit-Operationen gibt's jeweils Versionen mit und ohne Überlaufprüfung und bei denen mit steht der folgende Kommentar:
Zitat:
|
Re: Integerüberlauf bei Cardinalmultiplikation?
Hab ja gestagt, dat da einiges fehlt.
Und im Grunde genommen bleiben da nur noch drei Möglichkeiten, wenn man 100%ig sicher gehen will.
|
Re: Integerüberlauf bei Cardinalmultiplikation?
Der Fehler ist bereits bekannt (siehe QC#2571), wurde in Delphi 7.1 (Build 7.0.8.1) behoben.
Gruß, Marcel |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz