언어 자료구조 알고리즘/C11 표준 라이브러리 함수

실수 판별식 매크로

언제나휴일 2016. 5. 10. 18:09
반응형

실수 판별식 매크로


헤더 파일

[언어 자료구조 알고리즘/C11 표준 라이브러리 함수] - math.h


int isgreater(real-floating x, real-floating y); x>y 매크로 함수

int isgreaterequal(real - floating x, real - floating y); x>=y 매크로 함수

int isless(real-floating x, real-floating y); x<y 매크로 함수

int islessequal(real-floating x, real-floating y); x<=y 매크로 함수

int islessgreater(real-floating x, real-floating y); (x>y)||(x<y) 매크로 함수

int isunordered(real-floating x, real-floating y); (isnan(x)||isnan(y)) 매크로 함수

int fpclassify(real-floating x); x가 어떤 종류의 값인지 판별

int isfinite(real - floating x); x inf가 아닌지 판별

int isnan(real-floating x); x nan인지 판별

int isinf(real-floating x); x inf인지 팔별

int signbit(real-floating x); x가 음수인지 판별

 

math.h 에서는 실수에 관한 다양한 판별식 매크로 함수를 제공합니다. 다음의 예제는 실수에 관한 다양한 판별식 매크로 함수를 사용하는 예제입니다.

 

사용 예

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

//int isgreater(real-floating x, real-floating y); x>y 매크로 함수

//int isgreaterequal(real - floating x, real - floating y); x>=y 매크로 함수

//int isless(real-floating x, real-floating y); x<y 매크로 함수

//int islessequal(real-floating x, real-floating y); x<=y 매크로 함수

//int islessgreater(real-floating x, real-floating y); (x>y)||(x<y) 매크로 함수

//int isunordered(real-floating x, real-floating y); (isnan(x)||isnan(y)) 매크로 함수

//int fpclassify(real-floating x); x가 어떤 종류의 값인지 판별

//int isfinite(real - floating x); x inf가 아닌지 판별

//int isnan(real-floating x); x nan인지 판별

//int isinf(real-floating x); x inf인지 팔별

//int signbit(real-floating x); x가 음수인지 판별

//math.h 에서 제공하는 매크로 판별식 사용

 

#include <math.h>

#include <stdio.h>

 

int main(void)

{

    double d1 = 1.0, d2 = 0.0, d3=-1.0;

    double d4 = d1 / d2;//inf

    double d5 = nan("");//nan

 

    printf("%f>%f   : %d\n",d1,d2, isgreater(d1,d2));

    printf("%f>=%f : %d\n",d1,d2, isgreaterequal(d1,d2));

    printf("%f<%f   : %d\n",d1,d2, isless(d1,d2));

    printf("%f<=%f : %d\n", d1, d2,islessequal(d1, d2));

    printf("%f>%f || %f<%f : %d\n", d1,d2,d1,d2,islessgreater(d1, d2));

    printf("%f or %f is nan: %d\n",d1,d5, isunordered(d1, d5));

 

    printf("실수 분류 (nan:%d, inf:%d, normal:%d, subnormal:%d, zeor:%d)\n",

            FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO);

    printf("%f 분류: %d\n", d1, fpclassify(d1));

    printf("%f 분류: %d\n", d2, fpclassify(d2));

    printf("%f 분류: %d\n", d3, fpclassify(d3));

    printf("%f 분류: %d\n", d4, fpclassify(d4));

    printf("%f 분류: %d\n", d5, fpclassify(d5));

 

    printf("%f is finite: %d\n", d4, isfinite(d4));

    printf("%f is nan: %d\n", d5, isnan(d5));

    printf("%f is infinite: %d\n", d4, isinf(d4));

    if (signbit(d3))

    {

        printf("%f is 음수\n", d3);

    }

    else

    {

        printf("%f is 양수\n", d3);

    }

    return 0;

}

 

출력

1.000000>0.000000   : 1

1.000000>=0.000000 : 1

1.000000<0.000000   : 0

1.000000<=0.000000 : 0

1.000000>0.000000 || 1.000000<0.000000 : 1

1.000000 or nan is nan: 1

classify (nan:2, inf:1, normal:-1, subnormal:-2, zeor:0)

1.000000 classify: -1

0.000000 classify: 0

-1.000000 classify: -1

inf classify: 1

nan classify: 2

inf is finite: 0

nan is nan: 1

inf is infinite: 1

-1.000000 is 음수



사용한 함수

[언어 자료구조 알고리즘/C11 표준 라이브러리 함수] - printf




  앞으로 프로그래밍 관련 글은 새롭게 개설한 언제나 휴일 전용 사이트에서 만나보세요. 

2017년 1월 1일까지 이 곳의 프로그래밍 자료는 http://ehpub.co.kr 로 옮길 예정입니다.
 

반응형

'언어 자료구조 알고리즘 > C11 표준 라이브러리 함수' 카테고리의 다른 글

isblank  (0) 2016.05.10
isalpha  (0) 2016.05.10
isalnum  (0) 2016.05.10
ctype.h  (0) 2016.05.10
assert.h  (0) 2016.05.10
fmin, fminf, fminl  (0) 2016.05.10
fmax, fmaxf, fmaxl  (0) 2016.05.10
fdim, fdimf, fdiml  (0) 2016.05.10
nexttoward, nexttowardf, nexttowardl  (0) 2016.05.10
nextafter, nextafterf, nextafterl  (0) 2016.05.10