Функція frexp () в C ++ розбиває число з плаваючою комою на своє двійкове значення.
Двійкове значення - це плаваюча точка, абсолютне значення якої (мантиса) лежить в інтервалі (0,5, 1) і цілому показнику для 2.
Функція визначена у файлі заголовка.
Математично,
x = двійкове значення і * 2 показник
де експонента зберігається у розташуванні, вказаному exp, а двійкове значення - це значення, яке повертає frexp ().
прототип frexp () (за стандартом C ++ 11)
подвійний frexp (подвійний x, int * exp); float frexp (float x, int * exp); long double frexp (long double x, int * exp); подвійний frexp (T x, int * exp); // Для цілісного типу
Функція frexp () приймає два аргументи і повертає двійкове значення та значення типу double
, float
або long double
.
Параметри frexp ()
- x - значення, яке потрібно розкласти.
- exp - вказівник на ціле число, де слід зберігати значення показника.
frexp () Повернене значення
Функція frexp () повертає двійкове значенняі абсолютне значення якого знаходиться в інтервалі (0,5, 1). Якщо x дорівнює нулю, і значення, і показник степеня дорівнюють нулю.
повертаються значення frexp ()Параметр (x) | Двійковий ознака | Експонента |
---|---|---|
0 | 0 | 0 |
x> = 1 | Позитивні | Позитивні |
х <= -1 | Негативні | Позитивні |
-1 <x <0 | Негативні | Негативні |
0 <x <1 | Позитивні | Негативні |
Приклад 1: Як функція frexp () працює в 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; )
Коли ви запускаєте програму, результат буде:
6,81 = 0,85125 * 2 3
Приклад 2: функція frexp () з інтегральним типом
#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; )
Коли ви запускаєте програму, результат буде:
25 = 0,78125 * 2 5