STM32 Int, Float, Double

#2643571
Lesenswert?

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).
#2643635
Lesenswert?

@  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
Persönliche Seite #2643650
Lesenswert?

..oder vorgekaut aus z.B.: 
http://www.henkessoft.de/C++/C++/grundlagen.htm
1
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.

Falk Brunner schrieb:
> Dort passt auch 3.1415927 rein.

Sicher?
Gast #2833941
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren