2013-06-13 28 views
6

Zastanawiam się, co ludzie używają funkcji ldexp() w praktycznych zastosowaniach.Jaki jest cel ldexp?

To opis

zwraca wynik mnożenia x (mantysy) o 2 podniesionej do potęgi exp (wykładnik).

+0

Brzmi jak przesunięcie nieco ... – Crisfole

+0

Tak, ale liczby zmiennoprzecinkowe, zastanawiam się, kiedy trzeba to praktycznie wykorzystać. – BlueTrin

+1

Wygląda jak optymalizacja, aby uniknąć wykonywania obliczeń zmiennoprzecinkowych operując bezpośrednio na bitach zmiennoprzecinkowej numer – SirDarius

Odpowiedz

4

ldexp i jego podwójny, frexp, radzić sobie z mantysy i wykładnika liczby zmiennoprzecinkowej. Są sposobem na uzyskanie wewnętrznej reprezentacji bez bezpośredniej manipulacji bitem.

2

Przy zastosowaniu frexp funkcja ldexp jest przydatna w sytuacjach, które wymagają wielokrotnego mnożenie przez 2. Jeśli następny mnożenie powoduje przepełnienie lub niedomiar, użyć frexp oddzielić mantysę z wykładnikiem. Daje to pełną kontrolę nad wykładnikiem i mantysą, dzięki czemu można operować nimi oddzielnie, bez utraty dokładności. Po zakończeniu użyj ldexp, aby ponownie połączyć mantysę i wykładnik.

Zobacz więcej szczegółów here.