AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[gelöst] Warum Integer-Overlow

Ein Thema von silver-moon-2000 · begonnen am 15. Apr 2008 · letzter Beitrag vom 15. Apr 2008
Antwort Antwort
silver-moon-2000

Registriert seit: 18. Feb 2007
Ort: Schweinfurt
170 Beiträge
 
Delphi XE Professional
 
#1

[gelöst] Warum Integer-Overlow

  Alt 15. Apr 2008, 15:35
Hallo zusammen,

Meinem Verständnis nach weiße ich doch das Ergebnis der Berechnung einem Extended zu, da verstehe ich eben nicht, wo es zu einem Integer-Overflow kommen soll...

Delphi-Quellcode:
  fQualityFactor, tOvr, tAud : extended;
  fTSize, fWidth, fHeight, fFrameCount : integer;

...

  fQualityFactor := (1024 * fTSize - (tAud + tOvr)) /
                    (fWidth * fHeight * fFrameCount);
Eine Lösung habe ich natürlich, nur verstehe ich sie eben nicht wirklich...

Delphi-Quellcode:
  fQualityFactor, tOvr, tAud : extended;
  fTSize, fWidth, fHeight, fFrameCount : integer;
  extTSize, extWidth, extHeight, extFrameCount : extended;

...

  extTSize := fTSize;
  extHeight := fHeight;
  extWidth := fWidth;
  extFrameCount := fFrameCount;

  fQualityFactor := (1024 * extTSize - (tAud + tOvr)) /
                    (extWidth * extHeight * extFrameCount);
fTSize, fWidth usw. gleich als WExtended zu deklarieren, macht meiner Meinung keinen Sinn, da diese Werte immer nur Integer-Charakter haben, soll heißen: das Bild einer Video-Datei kann eben immer nur ganzzahig viele Pixel hoch sein etc.

Wäre schön, wenn mir jemand meinen Fehler aufzeigen könnte.
Tobias
Bitte nicht hauen , ich weiß es nicht besser
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Warum Integer-Overlow

  Alt 15. Apr 2008, 15:37
Weil einzeln gerechnet wird.

fWidth * fHeight * fFrameCount wird wohl zu groß werden.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Warum Integer-Overlow

  Alt 15. Apr 2008, 15:38
Das Ergebnis deiner Berechnung wird zwar einem extended zugwiesen aber es werden keine extended werte multipliziert sondern Integerwerte. Dementsprechend werden Integeroperationen angewendet. Erst wenn das Ergebnis berechnet wird kommt der Extended ins Spiel.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
silver-moon-2000

Registriert seit: 18. Feb 2007
Ort: Schweinfurt
170 Beiträge
 
Delphi XE Professional
 
#4

Re: Warum Integer-Overlow

  Alt 15. Apr 2008, 15:51
Zitat von SirThornberry:
Das Ergebnis deiner Berechnung wird zwar einem extended zugwiesen aber es werden keine extended werte multipliziert sondern Integerwerte. Dementsprechend werden Integeroperationen angewendet. Erst wenn das Ergebnis berechnet wird kommt der Extended ins Spiel.
Zitat von mkinzler:
Weil einzeln gerechnet wird.

fWidth * fHeight * fFrameCount wird wohl zu groß werden.
Hmm, und ich dachte, es wird gleich am Anfang in extended "gewandelt", und nicht erst bei der zuweisung.
Wieder was gelernt. Danke
Tobias
Bitte nicht hauen , ich weiß es nicht besser
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: [gelöst] Warum Integer-Overlow

  Alt 15. Apr 2008, 17:57
du könntest eines der Elemente zu Extendet casten. Ich glaube dann werden die anderen auch im Context des Extendet multipliziert. Bin mir aber nicht sicher.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz