Hàm ldexp() tính tích của một số thực với 2 mũ n. Công thức: ldexp(x, n) = x × 2ⁿ.
Cú pháp
float ldexp(float x, int n); double ldexp(double x, int n); long double ldexp(long double x, int n);
Tham số
- x - Số thực (significand/mantissa)
- n - Số mũ nguyên (exponent)
Ví dụ
#include <iostream>
#include <cmath>
using namespace std;
int main() {
float x = 28.8f;
int n = 3;
cout << "ldexp(" << x << ", " << n << ") = "
<< ldexp(x, n) << endl;
// 28.8 * 2^3 = 28.8 * 8 = 230.4
// Ví dụ với số âm
cout << "ldexp(1.5, -2) = " << ldexp(1.5, -2) << endl;
// 1.5 * 2^-2 = 1.5 * 0.25 = 0.375
return 0;
}
Kết quả
ldexp(28.8, 3) = 230.4 ldexp(1.5, -2) = 0.375
Ứng dụng thực tế
- Thao tác bit nhanh cho số thực (nhân/chia 2ⁿ)
- Triển khai phép toán số học floating-point
- Xử lý tín hiệu, đồ họa, khoa học máy tính
- Ngược lại của
frexp()(phân tách mantissa/exponent)