C ++ funkcija frexp () sadala peldošā komata skaitli tā binārajā nozīmē.
Binārais nozīmes apzīmējums ir peldošs punkts, kura absolūtā vērtība (mantissa) atrodas intervālā (0,5, 1) un veselā skaitļa eksponentā 2.
Funkcija ir definēta galvenes failā.
Matemātiski,
x = binārs nozīmes * 2 eksponents
kur eksponents tiek glabāts vietā, uz kuru norāda exp, un binārais apzīmējums ir frexp () atgrieztā vērtība.
frexp () prototips (pēc standarta C ++ 11)
dubultā frexp (double x, int * exp); float frexp (pludiņš x, int * exp); long double frexp (garš dubultā x, int * exp); dubultā frexp (T x, int * exp); // Neatņemamajam tipam
Frexp () funkcija aizņem divus argumentus un atgriež bināro significand vērtību tipu double
, float
vai long double
.
frexp () parametri
- x - sadalāmā vērtība.
- exp - rādītājs uz veselu skaitli, kur jāsaglabā eksponenta vērtība.
frexp () Atgriešanās vērtība
Funkcija frexp () atgriež bināro nozīmes zīmi, kuras absolūtā vērtība atrodas intervālā (0,5, 1). Ja x ir nulle, gan nozīmes, gan eksponents ir nulle.
frexp () atgriešanās vērtībasParametrs (x) | Binārais nozīmīgums | Eksponents |
---|---|---|
0 | 0 | 0 |
x> = 1 | Pozitīvi | Pozitīvi |
x <= -1 | Negatīvs | Pozitīvi |
-1 <x <0 | Negatīvs | Negatīvs |
0 <x <1 | Pozitīvi | Negatīvs |
1. piemērs: Kā funkcija frexp () darbojas 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; )
Palaidot programmu, izeja būs:
6,81 = 0,85125 * 2 3
2. piemērs: funkcija frexp () ar integrālo tipu
#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; )
Palaidot programmu, izeja būs:
25 = 0,78125 * 2 5