Кто сталкивался, подскажите аль поделитесь идеями, как красиво сохранить вещественне число побайтно в память, в какую - это уже аппаратный вид реализации. Язык Си.
Сам могу предположить: - преобразовать в строковый тип библиотечными функциями и сохранить побайтно. - сделать ассемблерную вставку, а там все сделать.
Хотелось бы выслушить ваши предложения, по возможности реализацию. Заранее благодарен за любые старания.
>Наложи байтовый массив через union. В принципе можно обьеденить одинакового размера две переменные, например typedef union { float f_32; // 32bit unsigned int i_32; // 32bit } foo_t;
Будет же что и массив float x; *((BYTE*)(&x)) - первый байт *((BYTE*)(&x)+1) - второй байт *((BYTE*)(&x)+2) - третий байт *((BYTE*)(&x)+3) - четвертый байт
>зачем на int ? Если int 32 бита(4 байта), например компилятор IAR, RealView, то такое: union { float f; struct { char b0; char b1; char b2; char b3; }; }
И такеое: typedef union { float f; unsigned int b; } foo_t;
будут равнозначны. С массивом функциональнее читается.
Уже работает на AT45 во всю.
Сообщение отредактировал Hastja - Apr 4 2007, 12:27
Группа: Свой
Сообщений: 152
Регистрация: 21-12-05
Из: Москва
Пользователь №: 12 476
"Натяни" на это число байтовый массив через union. Хошь потом по байтам обращайся к переменной, а хочешь к переменной в целом, так будет читабельнее и приятней) ИМХО Коллеги уже примеры написали, повторяться не буду))