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

 
 
> float -- чушь налицо
Vladimir Prokofi...
сообщение Aug 1 2011, 13:41
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 9-03-11
Пользователь №: 63 481



Непонимаю почему так, поясните пожалуйста.




CODE
typedef union
{
float f;
unsigned char a [sizeof (float)];
} bd_float;

unsigned char UART0_SendFloat( float f ){
unsigned char tmp;
bd_float valueToSend;

valueToSend.f = f;

for( i = 0 ; i < 4; i++ ){
tmp = valueToSend.a[i];
UART0_SendChar( tmp );
}
return 0;
}



Ставлю точку остановки на цикл, и вижу что это float представляется как

valueToSend = {
f = 40
a = { 0x00, 0x00, 0x40, 0x42 }
}
valueToSend = {
f = -352
a = { 0x00, 0x00, 0xB0, 0xC3 }
}

Почему у него такое странное представление? Пробовал через указатель на массив из 4х символов -- два первых байта все равно пусты. Естественно, когда я это склейваю на приемнике получаются совсем не эти числа...
Go to the top of the page
 
+Quote Post



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

 


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


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