C언어/언제나 C언어

실수 형식 표현 범위, FLT_MIN, FLT_MAX, FLT_TRUE_MIN [언제나 C언어]

언제나휴일 2020. 6. 5. 16:41
반응형

 

소스 코드

/* http://ehpub.co.kr  언제나 C언어  실수 형식 표현 범위 */
#include <stdio.h> //표준 입출력 헤더
#include <float.h>
typedef union {
    float value;
    struct {
        unsigned mantissa : 23;
        unsigned exponent : 8;
        unsigned sign : 1;
    }sv;
}Test;
int main(void)
{   
    Test test = { 0 };
    test.sv.exponent = 1;
    test.sv.mantissa = 1;
    printf("%.50f\n", test.value);
    printf("%.50f\n", FLT_MIN);
    test.sv.exponent = 0;
    printf("%.50f\n", test.value);
    printf("%.50f\n", FLT_TRUE_MIN);
    test.sv.exponent = 0xFE;
    test.sv.mantissa = 0x7FFFFF;
    printf("%.50f\n", test.value);
    printf("%.50f\n", FLT_MAX);
    test.sv.exponent = 0xFF;
    test.sv.mantissa = 0;
    printf("%.50f\n", test.value);
    test.sv.mantissa = 3;
    printf("%.50f\n", test.value);
    return 0;
}
반응형