C언어/C언어 예제

[math.h] frexp, frexpf, frexpl 함수 사용 예제 코드 , 지수와 가수 계산

언제나휴일 2016. 5. 9. 07:14
반응형

[math.h] frexp, frexpf, frexpl 함수 사용 예제 코드 


//C언어 표준 라이브러리 함수 가이드

//double frexp(double value, int *exp); 지수와 가수 계산

//float frexpf(float value, int *exp); 지수와 가수 계산

//long double frexpl(long double value, int *exp); 지수와 가수 계산

//특정 실수가 x*2^exp 인지 확인

 

#include <math.h>

#include <stdio.h>

 

int main(void)

{

    double value;

    double exp;

    float expf;

    long double expl;

    int mantissa;

 

    value = 1.0;

    exp = frexp(value, &mantissa);

    printf("%f = %f*2^%d \n", value, exp, mantissa);

 

    value = 2.0;

    exp = frexp(value, &mantissa);

    printf("%f = %f*2^%d \n", value, exp, mantissa);

 

    value = 4.0;

    exp = frexp(value, &mantissa);

    printf("%f = %f*2^%d \n", value, exp, mantissa);

 

    value = 0.5;

    exp = frexp(value, &mantissa);

    printf("%f = %f*2^%d \n", value, exp, mantissa);

 

    value = 3.5;

    exp = frexp(value, &mantissa);

    printf("%f = %f*2^%d \n", value, exp, mantissa);

 

    value = 0.1;

    exp = frexp(value, &mantissa);

    expf = frexpf((float)value, &mantissa);

    expl = frexpl(value, &mantissa);

    printf("frexp  함수 사용: %f = %.30f*2^%d \n", value, exp, mantissa);

    printf("frexpf 함수 사용: %f = %.30f*2^%d \n", value, expf, mantissa);

    printf("frexpl 함수 사용: %f = %.30f*2^%d \n", value, expl, mantissa);

    return 0;

}

 

출력

1.000000 = 0.500000*2^1

2.000000 = 0.500000*2^2

4.000000 = 0.500000*2^3

0.500000 = 0.500000*2^0

3.500000 = 0.875000*2^2

frexp  함수 사용: 0.100000 = 0.800000000000000044408920985006*2^-3

frexpf 함수 사용: 0.100000 = 0.800000011920928955078125000000*2^-3

frexpl 함수 사용: 0.100000 = 0.800000000000000044408920985006*2^-3


프로그래밍 언어 및 기술 학습, 무료 동영상 강의 언제나 휴일 티스토리

반응형