float über uart, momentan betriebsblind

Gast #3565180
Lesenswert?

Hallo

ich bekommen seriell auf meinen Mega88 einen Floatwerte mit 4x8Bytes...

Wie kann ich jetzt den char[4] in ein float pressen, bin momentan 
betriebsblind ;-)

Muss ich das nach http://de.wikipedia.org/wiki/IEEE_754 (Abschnitt: 
erechnung IEEE754-Gleitkommazahl → Dezimalzahl) machen, oder geht das 
über eine Lib in WINAVR, welche ich noch nicht kenne.

Wer schickt den auch schon Floatwerte, pfui

Gruß Ert
#3565237
Lesenswert?

@ Ert (Gast)

>ich bekommen seriell auf meinen Mega88 einen Floatwerte mit 4x8Bytes...

In welcher Form? Als ASCII-Zeichen? Denn 32 byte ist arg viel.
Oder in Binärform?

>Wie kann ich jetzt den char[4] in ein float pressen, bin momentan
>betriebsblind ;-)

Wenn du den float schon binär bekommst, dann schon.

>Muss ich das nach http://de.wikipedia.org/wiki/IEEE_754 (Abschnitt:
>erechnung IEEE754-Gleitkommazahl → Dezimalzahl) machen,

NEIN!

>oder geht das
>über eine Lib in WINAVR, welche ich noch nicht kenne.

Ja. sscanf kann das. Oder atof() aus stdlib.h, das sit deutlich 
resourcenschonender.
Gast #3565825
Lesenswert?

i be back. Ich hasse IKEA am Freitag -.- dauert immer viel zu lang bis 
man da wieder raus ist

Zurück zum Thema.

Es sind natürlich 4x8bits also 4Bytes, entschuldigt den Fehler im ersten 
Satz oO.

Ich hab also ein char, beispielweise:

tempchar[4] = {0x34, 0x45, 0x56, 0x67};

Das erste Bit ist das Vorzeichen usw. aber wie würdet ihr jetzt elegant 
ein int bzw ein float aus den char machen?

Danke für die Hilfe <3

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