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

 
 
> Преобразование double во float
MKdemiurg
сообщение Aug 21 2013, 15:06
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 624
Регистрация: 15-06-10
Из: Россия
Пользователь №: 57 939



Собс-но сабж.
Есть число выдаваемое прибором формата DOUBLE.
При этом в компиляторе нет этого формата , а есть float и long int;
Как пересчисчитать с потерей точности и размерности?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MKdemiurg
сообщение Aug 22 2013, 10:09
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 624
Регистрация: 15-06-10
Из: Россия
Пользователь №: 57 939



Спасибо за подсказки.
Сделал просто пересчётом по формулt из IEEE 754

unsigned long int r1, r2;
float r3;
r1=((((unsigned int)dob[0]&0x7F)<<4)|doub[1]>>4);
r2=(unsigned long int)doub[1]<<28|((unsigned long int)doub[2]<<20)|((unsigned long int)doub[3]<<12)|((unsigned long int)doub[4]<<4)|(doub[5]>>4);
r3=pow(-1,doup[0]>>7)*pow(2,(r1-1023))*(1+r2/4294967296.0);

PS Компилятр CVAVR - long long там тоже не реализован. Но до этого момента и не нужно было.
Go to the top of the page
 
+Quote Post



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

 


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


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