Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Hàm ldexp() trong C++

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)