Aracılığıyla paylaş


ldexp, ldexpf, ldexpl

Kayan noktalı bir sayıyı iki tamsayı gücüyle çarpar.

Sözdizimi

double ldexp(
   double x,
   int exp
);
float ldexpf(
   float x,
   int exp
);
long double ldexpl(
   long double x,
   int exp
);
#define ldexp(X, INT) // Requires C11 or higher

float ldexp(
   float x,
   int exp
);  // C++ only
long double ldexp(
   long double x,
   int exp
);  // C++ only

Parametreler

x
Kayan nokta değeri.

exp
Tamsayı üssü.

Dönüş değeri

İşlevler ldexp başarılı olursa * 2exp değerini x döndürür. Taşmada ve işaretine xldexp bağlı olarak +/- HUGE_VALdöndürür; errno değer olarak ERANGEayarlanır.

ve olası hata dönüş değerleri hakkında errno daha fazla bilgi için bkz.errno , _doserrno, _sys_errlistve _sys_nerr.

Açıklamalar

C++ aşırı yüklemeye izin verdiğinden, bu alma float veya long double türlerinin ldexp aşırı yüklemelerini çağırabilirsiniz. C programında, bu işlevi çağırmak için tgmath.h makrosunu <kullanmadığınız sürece, ldexp her zaman bir double ve alır int ve döndürürdouble.>

tgmath.h>ldexp() 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

Yordam C üst bilgisi C++ üst bilgisi
ldexp, ldexpf, ldexpl <math.h> <cmath>
ldexp Makro <tgmath.h>

Uyumluluk bilgileri için bkz . Uyumluluk.

Örnek

// crt_ldexp.c

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

int main( void )
{
   double x = 4.0, y;
   int p = 3;

   y = ldexp( x, p );
   printf( "%2.1f times two to the power of %d is %2.1f\n", x, p, y );
}

Çıktı

4.0 times two to the power of 3 is 32.0

Ayrıca bkz.

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