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

 
 
> Вещественные типы
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
Ответов (1 - 3)
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
msalov
сообщение Oct 14 2009, 06:36
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 526
Регистрация: 24-08-07
Из: Беларусь, Минск
Пользователь №: 30 045



 
Цитата(VAI @ Oct 14 2009, 06:31) *
Надо ручками приведение типов делать.
Код
(float)1.422725
либо 
Код
1.422725f
Go to the top of the page
 
+Quote Post
Copypaster
сообщение Oct 14 2009, 10:22
Сообщение #4





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



Цитата(VAI @ Oct 14 2009, 07:31) *
Надо ручками приведение типов делать.
Код
(float)1.422725

Да вы правы, теперь я понял в чем дело. Спасибо за вашу помощь.
Причина редактирования: Излишнее цитирование.
Go to the top of the page
 
+Quote Post

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

 


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


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