|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Serhiy Savychenko 2:5020/400 03 Sep 2001 12:26:32 To : Sergey Kabikov Subject : Re: Округление по правилам -------------------------------------------------------------------------------- > Hе совсем понял. Аргумент операции округления - число с плавающей точкой, а > результат (даже не глядя в реализацию) должен быть целым. Если тебе для > дальнейших операции нужна Float - ну и загрузи полученное целое снова в > регистр сопроцессора 8-) Спасибо всем, уже разобрался. Кстати любопытный факт, сопроцессор предлагает четыре варианта округления. Hужный мне по умолчанию. А для того чтобы делать округление как в ceil или floor нужно переключать контрольный регистр. Причем рекомендации по оптимизации к пентиумам не советуют так делать. > > SS> Hо я что то не нашел как влияет на эти операции контрольный регистр. > SS> Может кто нибудь знает где можно взять нормальный хелп по асемблеру > SS> в электронном виде. А то лучшее что я нашел хелп под дос от масма. > Легко. Только не по _ассемблеру_, а по _процессору_, и это совсем не одно и то > же. "IA-32 Intel Architecture Software Developer's Manual" в трех томах. Must > Have для серьезного программера (наизусть знать необязательно 8-). 16+ МБайт > сплошного удовольствия прямо с сайта Интела. Да по архитектуре у меня есть, но сопроцессор там плохо описан. Hашел у себя хелп к масм32 (некая надстройка к мелкософтовскому масму). Там вроде ничего описано. > procedure _ROUND; > asm > { -> FST(0) Extended argument } > { <- EAX Result } > > PUSH EAX > FISTP dword ptr [ESP] > FWAIT > POP EAX > end; Меня интересовал код как в VBA Excel, Round(x,n), где n количество оставляемых цифр. Hо все равно всем спасибо. > > Разумеется, > "Rounding Control Field of FPU Control Word should be set to zero". > для справки - это биты 10 и 11 CW. Операция по загрузке-выгрузке контрольного слова очень тормозит на быстрых процессорах, поэтому не рекомендуется. Еще раз всем спасибо. Глобальный разум это сила! --- ifmail v.2.15dev5 * Origin: Digital Generation (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/8428fa60ac69.html, оценка из 5, голосов 10
|