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

 
 
> Keil... Как в массив char записать значение float?
BFunTic
сообщение Dec 26 2007, 07:36
Сообщение #1





Группа: Новичок
Сообщений: 10
Регистрация: 25-11-07
Пользователь №: 32 675



Добрый день, всем!
Подскажите плз! Как в массив типа char записать значение типа float??? С занчениями типа int Я разобрался - оказалось просто, а с флоатом не катит...

...
float A;
unsigned int B;
unsigned char Buff[4];
...
Buff[0] = B >> 8; // Этот пример катит
Buff[1] = B >> 0; //
...
Buff[0] = A >> 24; // Этот пример НЕ катит
Buff[1] = A >> 16; // На стадии компиляции выдает - error C193: '>>' : bad operand type
Buff[2] = A >> 08; //
Buff[3] = A >> 00; //
...

В доках к Keil ошибка C193 - This error results when an expression uses illegal operand-types with the given operator...

Подскажите как правильно написать???

Заранее спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DASM
сообщение Dec 26 2007, 08:12
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Не спорю. Правда в Keil big endian, не знаю, относится ли это к float, первым способом поменять порядок можно, а Вашим нет. Ну если это не требуется, то конечно второй проще
Go to the top of the page
 
+Quote Post
777777
сообщение Dec 26 2007, 11:07
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(DASM @ Dec 26 2007, 11:12) *
Не спорю. Правда в Keil big endian, не знаю, относится ли это к float, первым способом поменять порядок можно, а Вашим нет. Ну если это не требуется, то конечно второй проще

Как раз вторым вариантом можно это сделать правильно, не задумываясь о порядке: компилятор это сам сделает правильно.

Только непонятно: зачем такие извращения? Зачем понадобилось в массив чаров записывать флоат? Может в архитектуре что-то не так?
Go to the top of the page
 
+Quote Post
DASM
сообщение Dec 26 2007, 11:53
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Цитата(777777 @ Dec 26 2007, 14:07) *
Как раз вторым вариантом можно это сделать правильно, не задумываясь о порядке: компилятор это сам сделает правильно.

Только непонятно: зачем такие извращения? Зачем понадобилось в массив чаров записывать флоат? Может в архитектуре что-то не так?

Что значит "правильно" и не задумываясь ? Положим этот float дальше идет по коммуникационной линии в составе большого пакета, имеющего некий стандарт, ну Modbus напрмер. И low- high там определены. Да куча таких вариантов может быть (и было в практике).
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 28th July 2025 - 17:16
Рейтинг@Mail.ru


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