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

 
 
> Вещественные типы
Copypaster
сообщение Oct 13 2009, 13:36
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 14-04-09
Пользователь №: 47 644



При работе с вещественными типами в IAR возникло следующее недопонимание. В документе EW430_CompilerReference.pdf говорится, что float имеет разрядность 32-бита, а тип double по умолчанию имеет разрядность также 32, либо 64 бита. В процессе отладки на плате наблюдается, что при установке в параметрах проекта размера для типа double в 64-бита, количество значащих цифр увеличивается до 15-ти разрядов, НО тоже наблюдается и для типа float, хотя в документе, насколько я понимаю, заявлено, что установка 64-разрядного размера для double не должна влиять на тип float и для него количество значащих цифр не должно превышать 7.
Кто может, пожалуйста, поясните это противоречие.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
VAI
сообщение Oct 14 2009, 03:31
Сообщение #2


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

Группа: Модераторы
Сообщений: 1 120
Регистрация: 17-06-04
Пользователь №: 37



Вы бы пример кода привели.
Про отладчик, что он там показывает, не знаю. Включите генерацию листинга и смотрите, что ИАР Вам сгенерил.
Если включена опция, что double 64 бита, то float занимает 4 байта, double - 8 байт. Но константы по умолчанию типа double, и если в выражениях присутствуют константы, то всё будет считаться в дублях...
Надо ручками приведение типов делать.
Код
(float)1.422725

Дайте пример кода, прямо на нём проще объяснить.


--------------------
Если зайца бить, его можно и спички научить зажигать
Сколько дурака не бей - умнее не будет. Зато опытнее
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 22:35
Рейтинг@Mail.ru


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