Aracılığıyla paylaş


frexp, frexpf, frexpl

Kayan noktalı bir sayının mantisini ve üssünü alır.

Sözdizimi

double frexp(
   double x,
   int *expptr
);
float frexpf(
   float x,
   int * expptr
);
long double frexpl(
   long double x,
   int * expptr
);
#define frexpl(X, INT_PTR) // Requires C11 or higher
float frexp(
   float x,
   int * expptr
);  // C++ only
long double frexp(
   long double x,
   int * expptr
);  // C++ only

Parametreler

x
Kayan nokta değeri.

expptr
Depolanan tamsayı üssü işaretçisi.

Dönüş değeri

frexp mantis döndürür. 0 ise x , işlev hem mantis hem de üs için 0 döndürür. ise expptr NULL, geçersiz parametre işleyicisi Parametre doğrulama bölümünde açıklandığı gibi çağrılır. Yürütmenin devam etmesi için izin verilirse, bu işlev olarak EINVAL ayarlanır errno ve 0 döndürür.

Açıklamalar

İşlev kayan frexp nokta değerini (x) bir mantis (m) ve üssüne ()n böler; böylece mutlak değeri m 0,5'ten büyük veya buna eşit ve 1,0'dan küçük vem x = * 2n olur. Tamsayı üssü n tarafından expptrişaret edilen konumda depolanır.

C++ aşırı yüklemeye izin verir, böylece aşırı yüklemelerini frexpçağırabilirsiniz. C programında, bu işlevi çağırmak için tgmath.h makrosunu <kullanmadığınız sürece, frexp her zaman bir double ve işaretçisi int alır ve döndürürdouble.>

tgmath.h>frexp() makroyu <kullanırsanız, işlevin hangi sürümünün seçili olduğunu bağımsız değişkenin türü belirler. Ayrıntılar için bkz . Tür genel matematik .

Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.

Gereksinimler

İşlev Gerekli başlık
frexp, frexpf, frexpl <math.h>
frexp Makro <tgmath.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

// crt_frexp.c
// This program calculates frexp( 16.4, &n )
// then displays y and n.

#include <math.h>
#include <stdio.h>

int main( void )
{
   double x, y;
   int n;

   x = 16.4;
   y = frexp( x, &n );
   printf( "frexp( %f, &n ) = %f, n = %d\n", x, y, n );
}
frexp( 16.400000, &n ) = 0.512500, n = 5

Ayrıca bkz.

Matematik ve kayan nokta desteği
ldexp
modf, modff, modfl