C - bytes einer variable auslesen
seth_not@home
- sonstiges
gudn tach!
mir fehlen die such-begriffe...
mein linker nachbar moechte in c eine float-variable byteweise an irgendeinen controller schicken. die frage ist also: wie kann man eine float-variable in ihre byte-bestandteile zerschneiden? bei integer-variablen (short, long, ...) geht sowas bequem ueber die binaeren operatoren z.b. den shift-operator. leider geht das nicht bei float.
klar, es gaebe andere wege zum ziel, z.b.
aber es muss doch auch moeglich sein, einfach die bytes ohne grosse zeitraubende umschweife auszugeben.
prost
seth
hi,
aber es muss doch auch moeglich sein, einfach die bytes ohne grosse zeitraubende umschweife auszugeben.
hab das schon lang nicht mehr gemacht, aber es müßte mit nem character-pointer funktionieren, auf die einzelnen bytes zuzugreifen
mfG,
steckl
Hallo seth,
aber es muss doch auch moeglich sein, einfach die bytes ohne grosse zeitraubende umschweife auszugeben.
Nun, caste den Zeiger auf Deine Float-Variable als Zeiger auf eine Byte-Variable und verwende diese als Array mit sizeof(float) Elementen:
#include <sys/types.h>
#include <stdio.h>
#include <stdint.h>
int main (int argc, char **argv) {
float v = 3.141592;
uint8_t *p = (uint8_t *)&v;
size_t i;
printf ("Float-Wert %f hat die Byte-Darstellung 0x", v);
for (i = 0; i < sizeof (float); i++) {
printf ("%02x", p[i]);
}
printf ("\n");
return 0;
}
Viele Grüße,
Christian
gudn tach!
Nun, caste den Zeiger auf Deine Float-Variable als Zeiger auf eine Byte-Variable und verwende diese als Array mit sizeof(float)
ah, genau! sehr schoen! ich danke euch beiden.
prodest
seth