3*8 gibt aber nicht 32. Deswegen brauchst du doch 4 Teile und nicht 3?!

Du kannst das z.B. so machen (ich hab es nicht probiert aber theoretisch müsse es doch so funktionieren?):
Code:
struct SFloat {
char parts[4];
};

SFloat zahl2;
float zahl1;
zahl2 = (SFloat)(zahl1);