Seite 1 von 2

quad IMA

Verfasst: 26.03.2010 17:12
von gnasen

Code: Alles auswählen

Procedure rechne()

  Protected a.q,b.q
  
  a = 1
  b = a / 1 / #PI
  
EndProcedure
rechne()
Ich denke nicht das der Code zu einem "IMA" (Bsp) oder "illegal instruction (executing binary data?)" (im Projekt) führen sollte. Oder übersehe ich da etwas?

Edit: Fall 2 hat sich erledigt, siehe unten

Re: quad IMA

Verfasst: 26.03.2010 18:08
von Little John
gnasen hat geschrieben:

Code: Alles auswählen

Procedure rechne()

  Protected a.q,b.q
  
  a = 1
  b = a / 1 / #PI
  
EndProcedure
rechne()
IMA ist natürlich nie schön ... aber sauberer Code ist das IMHO auch nicht. :mrgreen:
Funktioniert es bei Dir mit Int()?

Code: Alles auswählen

Procedure rechne()

  Protected a.q,b.q
  
  a = 1
  b = Int(a / 1 / #PI)
  
EndProcedure
rechne()
Gruß, Little John

Re: quad IMA

Verfasst: 26.03.2010 18:11
von gnasen
funktionieren tut es schon, aber Int(...) ist nicht (...). Ich rechne ja gerade wegen der genauigkeit mit Quads. Was mir noch aufgefallen ist: "Doppel-Durch" der Form a/b/c ist kein Problem und wird wie gewohnt von links nach rechts abgearbeitet.
Aber warum auf einmal IMAs und ähnliches angeschlichen kommt, sobald man #PI und Variable an passende stelle setzt?

Re: quad IMA

Verfasst: 26.03.2010 18:16
von ts-soft
gnasen hat geschrieben:funktionieren tut es schon, aber Int(...) ist nicht (...).
Aber #PI ist eine Gleitkommazahl und das paßt in kein Quad

Re: quad IMA

Verfasst: 26.03.2010 19:02
von Little John
gnasen hat geschrieben:funktionieren tut es schon, aber Int(...) ist nicht (...). Ich rechne ja gerade wegen der genauigkeit mit Quads.
Dann IntQ()? :-)
( Ich kann mich anscheinend nicht daran gewöhnen, dass es da einen Extrabefehl für Quads gibt. )

Moment ... oder verwechselst Du Quad mit Double?

Code: Alles auswählen

Procedure rechne()
   Protected a.d, b.d
 
   a = 1
   b = a / 1 / #PI
EndProcedure

rechne()
Gruß, Little John

Re: quad IMA

Verfasst: 26.03.2010 20:06
von a14xerus

Code: Alles auswählen

long.l    = #PI 
int.i     = #PI 
quad.q    = #PI 
float.f   = #PI 
double.d  = #PI 
Debug long    ; 3   ganzzahl 32 bit
Debug int     ; 3   ganzzahl 32 oder 64 bit
Debug quad    ; 3   ganzzahl 64 bit
Debug float   ; 3.14159274101257    fließkommazahl
Debug double  ; 3.1415926535897931  erhöhte genauigkeit
Quads sind kein Kommazahlen, sprich da ist auch keine "Genauigkeit" ;)
Quads haben nur einen größeren Zahlenraum

Re: quad IMA

Verfasst: 26.03.2010 21:42
von gnasen
das ist mir jetzt peinlich. Ja, habe die Variablentypen verwechselt.
Somit stimmt das doch noch alles da oben.

Nur der IMA bleibt, der sollte nicht auftreten, egal ob richtig oder falsch angewandt, oder nicht?

Re: quad IMA

Verfasst: 26.03.2010 21:43
von hjbremer
Was soll der Computer nun rechnen ????

Code: Alles auswählen

Procedure rechne()

  Protected a.q,b.q
  
  a = 1
  b = (a / 1) / #PI
  
EndProcedure
rechne()
oder

Code: Alles auswählen

Procedure rechne()

  Protected a.q,b.q
  
  a = 1
  b = a / (1 / #PI)  
  
EndProcedure
rechne()
das sind jeweils 2 völlig unterschiedliche Stiefel

zum einen wegen der unterschiedlichen Zahlenformate
und zum anderen wegen der Reihenfolge

Eigentlich eine Scherzfrage ?!

Re: quad IMA

Verfasst: 26.03.2010 22:42
von AND51
hjbremer hat geschrieben:Was soll der Computer nun rechnen ????
Vielleicht von links nach rechts, wie es jeder tut?

Re: quad IMA

Verfasst: 26.03.2010 22:50
von gnasen
AND51 hat geschrieben:
hjbremer hat geschrieben:Was soll der Computer nun rechnen ????
Vielleicht von links nach rechts, wie es jeder tut?
So kenne ich es auch. Deshalb habe ich auch überhaupt den Ausdruck a/b/c verwendet, da er beim programieren für mich dasselbe bedeutet wie (a / b) / c