Moritz M. schrieb:> Wie groß sind die Datentypen Int, Float und Double bei den STM32 µC?
Wenn der Compiler sich an die Vorgaben des Standards und den gesunden
Menschenverstand hält, dann 32, 32 und 64. Für Letzteres allerdings
würde ich nicht blind die Hand ins Feuer halten, weil vielleicht mal
jemand meint, dass 32-Bit double (Hardware) auf dem F4xx doch wirklich
sooo viel schneller ist als 64-Bit (Software).
Hallo,
char ist doch dann auch bestimmt 1 Byte oder? Ich verwende Atollic
TrueStudio, dass auf GCC basiert. Damit wird es wahrscheinlich die
Standards nutzen oder?
@ Moritz M. (avrprogger)
>okay sorry ist vielleicht ne blöde frage aber wie passt dann z.B. 4.567>in einen "nur" 4 Byte große - float- Variable?
Dort passt auch 3.1415927 rein. Oder 123456789. Nur wird das halt binär
kodiert und nicht zeichenweise wie ASCII oder BCD.
MFG
Falk
Der Datentyp float verwendet für die Mantisse 24 bit, für den Exponenten 7 bit und für das Vorzeichen ein bit und kann daher Werte im Bereich 3.4 * 10-38 bis 3.4 * 1038 aufnehmen. Die Darstellung ist auf 6 Nachkommastellen begrenzt.
A. K. schrieb:> ** Lötlackl schrieb:>>> Sicher?> #include <stdio.h>>> float p1 = 3.1415927;>> int main()> {> printf("%.7f\n", p1);> }> => 3.1415927
Gib doch mal mehr Stellen aus...
3.1415927 lässt sich Binär nicht genau in einem float speichern,
vielmehr wird 3,14159274101257... abgespeichert, was dann wieder zu
3.1415927 gerundet wird bei der Ausgabe mit 7 Nachkommastellen.
Steel schrieb:> Gib doch mal mehr Stellen aus...
Hab ich doch vor fast einem halben Jahr schon gemacht:
Beitrag "Re: STM32 Int, Float, Double"
PS: Ich weiss wie binäre Fliesskommadarstellung funktioniert. Probier
mal einfachere Zahlen, wie 0.1. ;-)
A. K. schrieb:> Steel schrieb:>> Gib doch mal mehr Stellen aus...>> Hab ich doch vor fast einem halben Jahr schon gemacht:> Beitrag "Re: STM32 Int, Float, Double"
Oh, holger hat den ollen thread hochgeholt...
Trotzdem:
[ ] Du hast verstanden
[X] Du hast nicht verstanden