реклама на сайте
подробности

 
 
> Сохранение вещественного числа побайтно в память
Hastja
сообщение Apr 4 2007, 08:47
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 21-11-05
Пользователь №: 11 170



Кто сталкивался, подскажите аль поделитесь идеями, как красиво сохранить вещественне число побайтно в память, в какую - это уже аппаратный вид реализации.
Язык Си.

Сам могу предположить:
- преобразовать в строковый тип библиотечными функциями и сохранить побайтно.
- сделать ассемблерную вставку, а там все сделать.

Хотелось бы выслушить ваши предложения,
по возможности реализацию.
Заранее благодарен за любые старания.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Hastja
сообщение Apr 4 2007, 12:21
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 21-11-05
Пользователь №: 11 170



>зачем на 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
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 4 2007, 14:46
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Hastja @ Apr 4 2007, 11:21) *
С массивом функциональнее читается.
Тогда возьмите такую реализацию:
Код
union
{
    float f;
    uint8_t char b[sizeof(f)];
};
или
union
{
    float f;
    uint8_t char b[];
};
printf ("%d %d %d %d", b[0], b[1], b[2], b[3]);


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 21:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01376 секунд с 7
ELECTRONIX ©2004-2016