Разбить число с плавающей точкой на мантиссу и целую степень двойки
#include <math.h>double frexp( double value,int *exp );float frexpf( float value,int *exp );
2
.libm
Данные функции разбивают число с плавающей точкой на мантиссу и целую степень 2
. Они сохраняют степень 2
в int, на которое указывает exp.
x, такое, что x является переменной double со значением в диапазоне [0.5, 1]
или 0
, и value равен x, помноженный на 2
в степени exp. Если value равен 0
, то обе части результата равны 0
.
#include <stdio.h>#include <stdlib.h>#include <math.h>int main( void ){int expon;double value;value = frexp( 4.25, &expon );printf( "%f %d\n", value, expon );value = frexp( -4.25, &expon );printf( "%f %d\n", value, expon );return (EXIT_SUCCESS);}
Код генерирует следующий вывод:
$ ./a.out 0.531250 3 -0.531250 3
ANSI, POSIX 1003.1
Предыдущий раздел: Описание API математической библиотеки