C ++ frexp () - Thư viện chuẩn C ++

Hàm frexp () trong C ++ ngắt một số dấu phẩy động thành ý nghĩa nhị phân của nó.

Ý nghĩa nhị phân và là một dấu phẩy động có giá trị tuyệt đối (phần định trị) nằm trong khoảng (0,5, 1) và một số mũ nguyên cho 2.

Hàm được định nghĩa trong tệp tiêu đề.

Về mặt toán học,

x = Số  nhị phân và * 2

trong đó, số mũ được lưu trữ ở vị trí được trỏ bởi exp và dấu nhị phân và là giá trị được trả về bởi frexp ().

frexp () nguyên mẫu (Theo tiêu chuẩn C ++ 11)

double frexp (double x, int * exp); float frexp (float x, int * exp); dài đôi frexp (dài đôi x, int * exp); double frexp (T x, int * exp); // Đối với kiểu tích phân

Hàm frexp () nhận hai đối số và trả về giá trị nhị phân và giá trị kiểu double, floathoặc long double.

thông số frexp ()

  • x - Giá trị được phân rã.
  • exp - Con trỏ đến một số nguyên mà giá trị của số mũ sẽ được lưu trữ.

frexp () Giá trị trả về

Hàm frexp () trả về ý nghĩa nhị phân và có giá trị tuyệt đối nằm trong khoảng (0,5, 1). Nếu x bằng 0, cả nghĩa và số mũ đều bằng không.

frexp () trả về giá trị
Tham số (x) Dấu hiệu nhị phân và Số mũ
0 0 0
x> = 1 Tích cực Tích cực
x <= -1 Tiêu cực Tích cực
-1 <x <0 Tiêu cực Tiêu cực
0 <x <1 Tích cực Tiêu cực

Ví dụ 1: Hàm frexp () hoạt động như thế nào trong C ++?

 #include #include using namespace std; int main () ( double x = 6.81, significand; int *exp; significand = frexp(x , exp); cout << x << " = " << significand << " * 2^" << *exp << endl; return 0; ) 

Khi bạn chạy chương trình, đầu ra sẽ là:

 6,81 = 0,85125 * 2 3 

Ví dụ 2: Hàm frexp () với kiểu tích phân

 #include #include using namespace std; int main () ( double significand; int *exp, x = 25; significand = frexp (x , exp); cout << x << " = " << significand << " * 2^" << *exp << endl; return 0; ) 

Khi bạn chạy chương trình, đầu ra sẽ là:

 25 = 0,78125 * 2 5 

thú vị bài viết...