Float-Wert in einzelne Bytes aufteilen ?
-
Hallo,
ich habe folgendes Problem:
Ein float-Wert muesste in 4 einzelne Bytes aufgeteilt werden, d.h. in ein char-Array gespeichert werden.Folgendes funktioniert ja nicht wirklich:
int i;
char Bytes[5];
float Value = 200.3f;
char *pByte;pByte = &Value;
for (i = 0; i < 4; i ++)
Bytes[i] = *pByte ++;Koennte mir bitte jemand kurz erklaeren, wie ich das machen kann ?
cu,
Thomas
-
int i; char bytes[5]; float val = ...; char *ptr = (char *) &val; for(i=0; i < 4; ++i) bytes[i] = ptr[i];
sollte auf Anhieb gehen.
-
Thomas01 schrieb:
Koennte mir bitte jemand kurz erklaeren, wie ich das machen kann ?
cu,
ThomasJa.
char fbytes[4]; float fnum = 100.00; memcpy ( fbytes, &fnum, sizeof ( fbytes ) ); printf ( "%f\n", *(float*)fbytes ); // Nachgucken ob auch alle Bits noch da sind.
Kürzer kenn ich nicht.
MFG
-
Vielen Dank euch beiden !
Das mit dem
"char *ptr = (char
&val;"
funktioniert tadellos, danke !
cu,
Thomas