[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
프로그래밍 언어 및 기술 학습, 무료 동영상 강의 언제나 휴일 티스토리
'C언어 > C언어 예제' 카테고리의 다른 글
[math.h] ceil, ceilf, ceill 함수 사용 예제 코드, 소수점 첫번째 자리에서 올림 (0) | 2016.05.09 |
---|---|
[math.h] hypot, hypotf, hypotl 함수 사용 예제 코드, 직각 삼각형의 빗변의 길이 계산 (0) | 2016.05.09 |
[math.h] modf, modff, modfl 함수 예제 코드, 실수 값을 정수 부분과 소수점 부분으로 분할 (0) | 2016.05.08 |
[math.h] log, logf, logl 함수 예제 코드, log 계산 (0) | 2016.05.08 |
[math.h] ldexp, ldexpf, ldexpl 함수 예제 코드, x*2^exp 계산 (0) | 2016.05.08 |