|
Floating point AVR-GCC, Как выполнять операции? |
|
|
|
Dec 4 2007, 10:35
|
Частый гость
 
Группа: Участник
Сообщений: 75
Регистрация: 15-03-07
Пользователь №: 26 193

|
Пишу: float x, pi; x=0.6298; pi = 3.14159265358; printf (stream, "0.6298=%lx \n", x); printf (stream, "pi/6=%lx \n", pi/6); printf (stream, "pi=%lx \n", pi); printf (stream, "2*pi=%lx \n",2 * pi); Получаю на терминале: 0.6298=3f213a93 pi/6=3f060a92 pi=40490fdb 2*pi=40c90fdb Это правильные результаты в представлении с плавающей точкой.
Так что получается все операции с плавающей точкой выполнятся безо вляких там спец внешних библиотек что ли, так просто??? Или я чего-то не понимаю?
|
|
|
|
|
 |
Ответов
|
Dec 5 2007, 08:36
|
Частый гость
 
Группа: Участник
Сообщений: 75
Регистрация: 15-03-07
Пользователь №: 26 193

|
Цитата(forever failure @ Dec 4 2007, 14:07)  Попробуйте в ключи компоновки добавить -Wl,-u,vfprintf -lprintf_flt Не так не получается. Нет у меня никакой библиотеки printf_flt, свой тут printf (к сожалению похоже и не доделанный). А как преобразование выполнить unsigned long в double или float с плавающей точкой. Так не выходит: unsigned long lp; double p; p=(double)lp; lp не преобразуется как плавающей точке и я это вижу при печати переменной. В результате выражения типа M_PI/p вычисляется неверно.
Сообщение отредактировал Kris2007 - Dec 5 2007, 08:37
|
|
|
|
|
Dec 5 2007, 13:49
|
Частый гость
 
Группа: Участник
Сообщений: 75
Регистрация: 15-03-07
Пользователь №: 26 193

|
Цитата(Сергей Борщ @ Dec 5 2007, 12:01)  Обратное преобразование выполняется функцией ceil(). Надо смотреть листинг и выяснять - это ошибка компилятора или библиотечной функции преобразования unsigned long в double. The ceil() function returns the smallest integral value greater than or equal to x, ex- pressed as a floating-point number. Число округляется, остается записано как floting point.
|
|
|
|
Сообщений в этой теме
Kris2007 Floating point AVR-GCC Dec 4 2007, 10:35 forever failure Код
printf (stream, "0.6298=%f \n... Dec 4 2007, 10:44 Kris2007 Цитата(forever failure @ Dec 4 2007, 13:4... Dec 4 2007, 10:51  defunct ЦитатаТак что получается все операции с плавающей ... Dec 4 2007, 11:01 forever failure Попробуйте в ключи компоновки добавить -Wl,-u,vfpr... Dec 4 2007, 11:07 Сергей Борщ Цитата(Kris2007 @ Dec 4 2007, 12:35) Так ... Dec 4 2007, 11:15 forever failure чьей сборки avr-gcc, какая версия ? может avr-libc... Dec 5 2007, 08:50 Kris2007 Цитата(forever failure @ Dec 5 2007, 11:5... Dec 5 2007, 09:03
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|