La funzione frexp () in C ++ suddivide un numero in virgola mobile nel suo significato binario.
Il significante binario è un punto mobile il cui valore assoluto (mantissa) si trova nell'intervallo (0,5, 1) e un esponente intero per 2.
La funzione è definita nel file di intestazione.
Matematicamente,
x = significante binario e * 2 esponente
dove, l'esponente è memorizzato nella posizione indicata da exp e il significato binario è il valore restituito da frexp ().
prototipo frexp () (A partire dallo standard C ++ 11)
doppia frexp (doppia x, int * exp); float frexp (float x, int * exp); long double frexp (long double x, int * exp); doppio frexp (T x, int * exp); // Per il tipo integrale
La funzione frexp () accetta due argomenti e restituisce il significato binario e il valore di tipo double, floato long double.
parametri frexp ()
- x - Il valore da scomporre.
- exp - Il puntatore a un numero intero in cui deve essere memorizzato il valore dell'esponente.
frexp () Restituisce il valore
La funzione frexp () restituisce il significato binario e il cui valore assoluto si trova nell'intervallo (0,5, 1). Se x è zero, sia il significato che l'esponente sono zero.
frexp () restituisce valori| Parametro (x) | Significato binario | Esponente |
|---|---|---|
| 0 | 0 | 0 |
| x> = 1 | Positivo | Positivo |
| x <= -1 | Negativo | Positivo |
| -1 <x <0 | Negativo | Negativo |
| 0 <x <1 | Positivo | Negativo |
Esempio 1: come funziona la funzione frexp () in 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; )
Quando esegui il programma, l'output sarà:
6,81 = 0,85125 * 2 3
Esempio 2: funzione frexp () con tipo integrale
#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; )
Quando esegui il programma, l'output sarà:
25 = 0,78125 * 2 5








