Seite 1 von 1

SPIN & Dezimalstellen

Verfasst: Mo 16. Feb 2015, 23:21
von PIC18F2550
Hallo,

Wes jemand zufällig wie mann unter Spin die Anzahl der Dezimalstellen der positiven und negativen Zahlen ermittelt?

Re: SPIN & Dezimalstellen

Verfasst: Mo 16. Feb 2015, 23:58
von yeti
[url=http://www.parallax.com/sites/default/files/downloads/P8X32A-Web-PropellerManual-v1.2.pdf]P8X32A-Web-PropellerManual-v1.2.pdf[/url], Seite 109 hat geschrieben:About Floating Point
The Propeller compiler handles floating-point constants as a single-precision real number as described by the IEEE-754 standard. Single-precision real numbers are stored in 32 bits, with a 1-bit sign, an 8-bit exponent, and a 23-bit mantissa (the fractional part). This provides approximately 7.2 significant decimal digits.

Re: SPIN & Dezimalstellen

Verfasst: Di 17. Feb 2015, 01:25
von PIC18F2550
Irgendwie versteh ich das gerade nicht

b := float(a)
ist immer 0 obwohl in a was steht

b := float(100)
ist der wert <>0

kann st Du mir das an einem Beispiel erklähren?
Float habe ich in meiner binären Welt noch nie verwendet.

Re: SPIN & Dezimalstellen

Verfasst: Di 17. Feb 2015, 03:42
von yeti
Der Propeller kann ansich nur mit Bits und Ganzzahlen rechnen.
Der Spinkompiler kann zum Übersetzungszeitpunkt konstante Fließkommaausdrücke ausrechnen.
Damit der Propeller in Spin etwas Sinnvolles mit Fließkommazahlen anstellen kann, müsste man ihm das erstmal in Form einer Library (Neuparallaxhochdeutsch: einem Objekt) beibringen und dann sähe es auch nicht wie gewohnte Ausdrücke aus sondern wie irgendwelche Methodenaufrufe...

Und ich kappier eh nicht, worauf Du hinaus willst, ziehe alle bisher hierzu gegebenen Antworten wieder züruck und behaupte hiermit das Gegentum...

...oder isses zuuuuu einfach zum sofort drauf Kommen und Du meinst die Anzahl der Stellen von Ganzzahlen?

n Bits ergeben 0...2^n-1 als positive Ganzzahlen und wenn man davon 1 Bit als Vorzeichen interpretiert, dann -(2^(n-1))...2^(n-1)-1.

Modulo u(h)rzeitbedingte Denk-, Tipp- und Logikfehler... :D

Die Anzahl der Stellen einer konkreten Zahl könnte man über deren Logarithmus bestimmen, aber da das eine Fließkommaoperation ist (die im Propeller mit der Logarithmentabelle im ROM angenähert wird) ist vermutlich wiederholtes Vergleichen x<10, x<100, ... sogar schneller...

Re: SPIN & Dezimalstellen

Verfasst: Di 17. Feb 2015, 11:04
von PIC18F2550
Hmmm,

also ich will zahlen (dezimal) echtsbündig ausgeben (RS232).
bei binären geb ich die Ausgabelänge an da weis ich die Länge.

Dazu muss ich bei Kurzen Zahlen Leerzeichen voher Ausgeben. :(

Ich dachte schonmal an eine Schleife wo der Wert durch 10 geteilt wird.

Re: SPIN & Dezimalstellen

Verfasst: Di 17. Feb 2015, 16:10
von yeti
Schau Dir mal in einem der üblichen FullDuplexSerial-, ConIO-, ... -Objekte die Methode "dec" an... das läßt sich passend umstrixxeln...

Re: SPIN & Dezimalstellen

Verfasst: Di 17. Feb 2015, 16:53
von PIC18F2550
Ich wed heut abend mir das mal anschauen.

An das ding habe ich garnicht gedacht. :shock: da passiert ja eigendlich auch nichts andes.

Danke.