Я использую битовые поля для легкого доступа к библиотеке с плавающей точкой, которую я пытаюсь создать для микроконтроллера без FPU.
Проблема в том, что я не могу заставить его работать с битовыми полями. Взгляните:
typedef struct
{
union{
unsigned long mantissa: 23;
unsigned long exponent: 8;
unsigned long sign: 1;
float all;
};
}_float __attribute__((__packed__));
Проблема в том, что когда я пытаюсь получить доступ или изменить что-либо, он рассматривает битовые поля как 1,8,23 бита с конца соответственно. Хотя должно быть 23 бита с конца, затем 8 бит и затем последний бит. Если я не совсем неправильно понял использование битовых полей. Я думал, что использование упаковано решит проблему, но, как вы можете видеть, это не так.
Любая помощь будет очень признательна. Я не раз заходил на этот сайт, когда гуглял, поэтому у меня большие надежды.