|
The C/C++ ldexp() function takes the mantissa and
the exponent numbers and returns a floating number:
double ldexp(double x, int y);
long double ldexpl(long double x, int y);
|
The function uses the formula:
Result = x * 2y
Here is an example:
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double x, Result;
int y;
x = StrToFloat(Edit1->Text);
y = StrToInt(Edit2->Text);
Result = ldexp(x, y);
Edit3->Text = FloatToStr(Result);
}
//---------------------------------------------------------------------------
The ldexp() function works on double-precision
numbers while the ldexpl() uses long doubles.
The VCL’s Ldexp() function is used to calculate
a number that is derived from a known mantissa and an exponent numbers:
Extended __fastcall Ldexp(Extended X, int P);
To perform this calculation, the function uses the
formula:
Result = X * 2P
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float Source = 450.04;
float Exp = 10.25;
double Result = Ldexp(Source, Exp);
Edit1->Text = Result;
}
//---------------------------------------------------------------------------