Hallo, ich hab eine schnelle Frage: Wie groß sind die Datentypen Int, Float und Double bei den STM32 µC? Moritz
int 4 Bytes float 4 Bytes double 8 Bytes mfg
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?
char ist, wie Du richtig bemerkt hast, 1 Byte 'groß'. Ich verwende CrossWorks, basiert meines Wissens auch auf gcc. mfg
Hallo, 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? Moritz
Hallo, danke :)
@ 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
..oder vorgekaut aus z.B.: http://www.henkessoft.de/C++/C++/grundlagen.htm
1 | |
Falk Brunner schrieb: > Dort passt auch 3.1415927 rein. Sicher?
** Lötlackl schrieb: > Sicher?
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
=> 3.1415927
Logisch, denn mein SR1 hat das immer so angezeigt ;-) http://de.wikipedia.org/wiki/SR1_(Taschenrechner)
Falk Brunner schrieb: > Logisch, denn mein SR1 hat das immer so angezeigt ;-) Und der hatte 32 Bits? 8 Stellen mit Vorzeichen sind aber schon 33. ;-)
A. K. schrieb: > #include <stdio.h> > > > > float p1 = 3.1415927; > > > > int main() > > { > > printf("%.7f\n", p1); > > } > > => 3.1415927 tatsächlich!
1 | |
Was behaupten die denn für'n Mist? Bin ich zu doof zum zählen? Müssen wir nun Herrn Buchegger bemühen? mfg
Da geht auch noch mehr:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
=> 3.141592741013
Hallo Jungs, habt ihr eine Idee, wie man einen Wert(float) in Char array umwandeln kann. verwende gerade den stm32F407, keil Compiler. Danke
Gast
#2833540
>habt ihr eine Idee, wie man einen Wert(float) in Char array umwandeln >kann. sprintf, snprintf?
Gast
#2833941
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. ;-)
Gast
#2833948
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
Steel schrieb: > [ ] Du hast verstanden > [X] Du hast nicht verstanden Macht nix, ihr mich nämlich auch nicht. ;-)
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.