frexp
, frexpf
, frexpl
Mendapatkan mantissa dan eksponen dari angka floating-point.
Sintaks
double frexp(
double x,
int *expptr
);
float frexpf(
float x,
int * expptr
);
long double frexpl(
long double x,
int * expptr
);
#define frexpl(X, INT_PTR) // Requires C11 or higher
float frexp(
float x,
int * expptr
); // C++ only
long double frexp(
long double x,
int * expptr
); // C++ only
Parameter
x
Nilai floating-point.
expptr
Pointer ke eksponen bilangan bulat tersimpan.
Nilai hasil
frexp
mengembalikan mantissa. Jika x
adalah 0, fungsi mengembalikan 0 untuk mantissa dan eksponen. Jika expptr
adalah NULL
, handler parameter yang tidak valid dipanggil seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi ini diatur errno
ke EINVAL
dan mengembalikan 0.
Keterangan
Fungsi memecah frexp
nilai floating-point (x
) menjadi mantissa (m
) dan eksponen (n
), sehingga nilai m
absolut lebih besar dari atau sama dengan 0,5 dan kurang dari 1,0, danm
x
= * 2.n
Eksponen n
bilangan bulat disimpan di lokasi yang diarahkan oleh expptr
.
C++ memungkinkan kelebihan beban, sehingga Anda dapat memanggil kelebihan beban frexp
. Dalam program C, kecuali Anda menggunakan makro tgmath.h> untuk memanggil fungsi ini, frexp
selalu mengambil double
penunjuk dan int
dan mengembalikan double
.<
Jika Anda menggunakan <makro tgmath.h>frexp()
, jenis argumen menentukan versi fungsi mana yang dipilih. Lihat Matematika generik jenis untuk detailnya.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Persyaratan
Function | Header yang diperlukan |
---|---|
frexp , frexpf , frexpl |
<matematika.h> |
frexp makro |
<tgmath.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// crt_frexp.c
// This program calculates frexp( 16.4, &n )
// then displays y and n.
#include <math.h>
#include <stdio.h>
int main( void )
{
double x, y;
int n;
x = 16.4;
y = frexp( x, &n );
printf( "frexp( %f, &n ) = %f, n = %d\n", x, y, n );
}
frexp( 16.400000, &n ) = 0.512500, n = 5
Baca juga
Dukungan matematika dan titik mengambang
ldexp
modf
, modff
, modfl
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk