AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Power funktioniert nicht wie gedacht

Ein Thema von DieDolly · begonnen am 24. Jul 2018 · letzter Beitrag vom 25. Jul 2018
Antwort Antwort
Seite 2 von 5     12 34     Letzte » 
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#11

AW: Power funktioniert nicht wie gedacht

  Alt 24. Jul 2018, 19:55
Funktioniert sehr gut. Mit Int64 sollte ich eigentlich keine Grenzen sprengen können.
Sorry, integer funktioniert knapp auch (benutzt 30 der 31 Bits). Habe mit 4096 getestet. Aber int64 ist sicherer.
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
1.062 Beiträge
 
#12

AW: Power funktioniert nicht wie gedacht

  Alt 24. Jul 2018, 19:57
Ich bin mir unsicher aber ich glaube I := Round(System.Math.Power(1024, 7)) funktioniert nicht, selbst wenn I Int64 ist.
Der Fehler lautet
Zitat:
Exception der Klasse $C0000090 mit der Meldung 'floating point invalid operation at 0x004075ff' aufgetreten.
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#13

AW: Power funktioniert nicht wie gedacht

  Alt 24. Jul 2018, 20:08
Ich bin mir unsicher aber ich glaube I := Round(System.Math.Power(1024, 7)) funktioniert nicht, selbst wenn I Int64 ist.
Der Fehler lautet
Zitat:
Exception der Klasse $C0000090 mit der Meldung 'floating point invalid operation at 0x004075ff' aufgetreten.
Richtig. 1024=2^10 also 1024^7 = 2^70 und das maximale int64 is 2^63-1. Hier wirst Du nicht um Fließkomma herumkommen, am besten Double.

Geändert von gammatester (24. Jul 2018 um 20:15 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
26.845 Beiträge
 
Delphi 10.3 Rio
 
#14

AW: Power funktioniert nicht wie gedacht

  Alt 24. Jul 2018, 20:10
Naja, grob überschlagen müsste 1024^7 eine Zahl mit 21 Stellen ergeben, das ist schon mächtig groß.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
1.062 Beiträge
 
#15

AW: Power funktioniert nicht wie gedacht

  Alt 24. Jul 2018, 20:27
Würde ein Hardcast auf Int64 die Zahl verkleinern und keinen Fehler mehr erzeugen?

Schematisch
I := Int64(1024^7);
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: Region Bern CH
295 Beiträge
 
Delphi 10.3 Rio
 
#16

AW: Power funktioniert nicht wie gedacht

  Alt 24. Jul 2018, 20:51
Nützt nix. Wie bereits weiter oben erwähnt werden Werte vom Typ int64 in 64 Bits gespeichert.

1024(10) = 10000000000(2) (eine 1 mit 10 Nullen)
1024^2(10) = 100000000000000000000(2) (eine 1 mit 20 Nullen)
1024^3(10) = 1000000000000000000000000000000(2) (eine 1 mit 30 Nullen)
...
1024^7(10) ergibt binär eine 1 mit 70 Nullen, also eine 71 stellige binäre Zahl.

ABER: Die grösste positive Zahl, welche du mit einem int64 speichern kannst ist 63 stellig:
1111...….11111(2) (63 1er) = 2^63-1 (10).

D.h. : Du kannst die 1024^7 nicht in einen int64 quetschen .
Michael Gasser
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#17

AW: Power funktioniert nicht wie gedacht

  Alt 24. Jul 2018, 20:58
Würde ein Hardcast auf Int64 die Zahl verkleinern und keinen Fehler mehr erzeugen?

Schematisch
I := Int64(1024^7);
1024^7 ist als Operation nicht definiert. power(1024,7) Fließkomma und ein Hardcast nicht erlaubt. Es bleiben zwei unsinnige Konstruktionen
Delphi-Quellcode:
uses system.math;
var
  x: double;
  I: int64 absolute x;
begin
  x := power(double(1024),7);
  writeln('I absolute: ', I);
  {$r-,q-}
  I := 1024*1024*1024;
  I := I*1024*1024;
  I := I*1024*1024;
  writeln('I als Produkt ', I);
end.
Das ergibt dann die falschen Werte
Code:
I absolute: 4922434392715952128
I als Produkt 0
  Mit Zitat antworten Zitat
Daniel
(Administrator)

Registriert seit: 30. Mai 2002
Ort: Hamburg
15.145 Beiträge
 
Delphi 10.3 Rio
 
#18

AW: Power funktioniert nicht wie gedacht

  Alt 24. Jul 2018, 21:01
Wenn du bereit bist, die Zahl künstlich durch ein Typecast zu verringern, welche qualitativen Ansprüche stellst du denn an die in deinem ersten Beitrag erwähnte Umrechnung? Das widerspricht sich doch…
Daniel R. Wolf
Admin Delphi-PRAXiS
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.390 Beiträge
 
Delphi 7 Personal
 
#19

AW: Power funktioniert nicht wie gedacht

  Alt 24. Jul 2018, 21:19
Naja, Ihm fehlte in dem Moment die Erinnerung an das Rechnen mit Potenzen.
Kann schon mal vorkommen.

gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
1.062 Beiträge
 
#20

AW: Power funktioniert nicht wie gedacht

  Alt 24. Jul 2018, 21:33
Vielleicht helfe ich euch und auch mir, wenn ich mein Problem erkläre.
Ich habe ein TEdit sowie eine TComboBox. Im Edit kann ich eine Zahl eingeben und in der ComboBox kann ich von Byte bis Gigabyte alles auswählen.
Die eingegebene Zahl soll später in das umgerechnet werden, was ich in der ComboBox ausgewählt habe. Das schaffe ich. Aber wie außer mit try except fange ich Fehleingaben ab, sodass die Zahl niemals größer wird als 1099511627775 Bytes (1TB-1Byte)

Geändert von DieDolly (24. Jul 2018 um 21:38 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 10:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf