C ++ frexp () - C ++ Pustaka Standar

Fungsi frexp () di C ++ memecah bilangan floating point menjadi signifikansi binernya.

Signifikansi biner adalah titik mengambang yang nilai absolutnya (mantissa) terletak pada interval (0,5, 1) dan eksponen bilangan bulat untuk 2.

Fungsi tersebut didefinisikan dalam file header.

Secara matematis,

x = Signifikan biner * 2 eksponen

dimana, eksponen disimpan di lokasi yang ditunjukkan oleh exp dan signifikansi Biner adalah nilai yang dikembalikan oleh frexp ().

frexp () prototipe (Pada standar C ++ 11)

frexp ganda (double x, int * exp); float frexp (float x, int * exp); frexp panjang ganda (panjang ganda x, int * exp); frexp ganda (T x, int * exp); // Untuk tipe integral

Fungsi frexp () mengambil dua argumen dan mengembalikan nilai signifikansi biner tipe double, floatatau long double.

frexp () Parameter

  • x - Nilai yang akan diuraikan.
  • exp - Pointer ke integer dimana nilai eksponen akan disimpan.

frexp () Nilai kembali

Fungsi frexp () mengembalikan signifikansi biner yang nilai absolutnya terletak pada interval (0,5, 1). Jika x nol, maka signifikan dan eksponen adalah nol.

frexp () mengembalikan nilai
Parameter (x) Signifikansi Biner Eksponen
0 0 0
x> = 1 Positif Positif
x <= -1 Negatif Positif
-1 <x <0 Negatif Negatif
0 <x <1 Positif Negatif

Contoh 1: Bagaimana fungsi frexp () bekerja di 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; ) 

Saat Anda menjalankan program, hasilnya adalah:

 6,81 = 0,85125 * 2 3 

Contoh 2: fungsi frexp () dengan tipe integral

 #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; ) 

Saat Anda menjalankan program, hasilnya adalah:

 25 = 0,78125 * 2 5 

Artikel yang menarik...