Hi, ich versuche gerade ein double oder float (sind soweit ich weiß in avr-gcc beides 4 Byte lang) in seine Bestandteile bzw. einzelne bytes zu zerlegen. Die sollen dann in unsogned chars gespeichert werden. Ich habe schon versucht mit einem (unsigned char) vor der zahl das erste Byte in einer Varibale zu speichern, und dann mit ([zahl]>>8) die nächsten Bytes an den Anfang zu schieben und dann wieder zu speichern. Das klappt aber leider nicht so ganz. Habt ihr ne Idee wie das gehen könnte? MfG Philipp
Gast
#2266248
Philipp Maricek schrieb: > Ich habe schon versucht mit einem (unsigned char) vor der zahl das erste > Byte in einer Varibale zu speichern, und dann mit ([zahl]>>8) die > nächsten Bytes an den Anfang zu schieben und dann wieder zu speichern. > Das klappt aber leider nicht so ganz. nein, denn der Typecast wandelt den float-Zahlenwert in einen unsigned-Zahlenwert um (unter Verlust der Nachkommastellen und der höheren Bytes). > Habt ihr ne Idee wie das gehen könnte? Etwa so (ohne Test hingekritzelt):
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
Gast
#2266251
willibald schrieb: > Etwa so (ohne Test hingekritzelt): > unsigned char * pf = (unsigned char *) &pf; Sorry, vertippt. So:
1 | |
Gast
#2266561
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
Danke euch beiden. MfG Philipp
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.