Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 14:58

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Форт с плавающей запятой
СообщениеДобавлено: Вс фев 27, 2011 05:22 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
Просто красивый прием программирования.

Речь шла не зачем, а можно ли ...

Про округление. Требуемая точность обеспечивается здесь не правилом округления.
По сути я записываю число с плавающей запятой в двоичном виде и оставляю
только 16 двоичных цифр после запятой. Потом умножаю на 2^16 и получается целое.
В целых числах и считаю. Но не обязательно-же 16. Можно больше, если точность
нужна больше.

Чем такая кухня отличается от float ? Во float кроме мантиссы мы имеем ещё и
порядок. И из-за введения этого порядка быстродействие рассчетов падает
катастрофически. Но порядок - вещь гнилая. Все равно если числа различаются
двоичным порядком больше, чем длина мантиссы в битах, вы их и сложить-то уже
не сможете. Большее проглотит меньшее. Порядок у чисел в рассчетах все равно
должен быть сопоставимым, так-что он малополезен. Поэтому лучше прикинуть
сколько бит хватит слева от запятой и сколько справа и считать все в целых.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Форт с плавающей запятой
СообщениеДобавлено: Вс фев 27, 2011 14:22 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Ethereal писал(а):
Чем такая кухня отличается от float ? Во float кроме мантиссы мы имеем ещё и
порядок. И из-за введения этого порядка быстродействие рассчетов падает
катастрофически.

Интересно, о какой эпохе микроэлектроники идет речь? :) Нормализация чисел (выравнивание порядков) выполняется специальным устройством барабанного сдвига, которое, хоть и громоздкое, но достаточно регулярное, ввиду чего уже в процессоре 80486DX присутствовало прямо на кристалле. В современных процессорах говорить о катастрофическом падении производительности при переходе к плавающей точке уже просто неверно.
Ethereal писал(а):
Все равно если числа различаются
двоичным порядком больше, чем длина мантиссы в битах, вы их и сложить-то уже
не сможете. Большее проглотит меньшее. Порядок у чисел в рассчетах все равно
должен быть сопоставимым, так-что он малополезен.

Ровно то же справедливо для целочисленного представления, или же представления с фиксированной точкой, чем и является подход, когда мы 16 разрядов виртуально отделяем точкой. Правда, double precision имеет 53 бита мантиссы, так что боьшее проглотит меньшее очень и очень нескоро. Явно позже, чем потеряется точность в 32-битной "мантиссе" целочисленного представления.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB