로고

(주)인포스텍
로그인 회원가입
  • 고객지원
  • A/S문의
  • 고객지원

    A/S문의

    어제 저녁은 유명환 닭강정.

    페이지 정보

    profile_image
    작성자 Mandelina
    댓글 댓글 0건   조회Hit 1회   작성일Date 25-07-14 16:48

    본문

    int형과 111111111111111111111 float형은 둘 다 4byte 𽌫it를 할당 받는 자료형이다.하지만 두 수의 표현 가능한 범위의 차이가 어마어마한데, 그건 왜일까?​둘 다 4byte 𽌫it를 할당 받지만, int형은 111111111111111111111 부호 1비트 + 숫자(31비트)를 사용하여 2^(-31) ~ 2^(31) - 1 까지의 수를 표현할 수 있는 반면, float 형은 부호 1비트 + 지수(8비트) + 111111111111111111111 가수(23비트)를 사용하는데, 지수(8비트) 부분을 이용하여 2의 n제곱인지를 표시하게 되는데, 8비트로 표현할 수 있는 경우의 수가 2^(2^(7) - 1) ϒ^(127)이므로 2^(31)인 int형보다 표현 범위가 111111111111111111111 넓다​int형1(부호) / 111111111111111111111 ... (31비트니깐 31개)​float형1(부호) / 11111111(지수, 8비트) / 1111111 (가수, 23비트니깐 21개)​ int형의 31비트는 2진수 10진수 계산방식에 의해1 * 2^(31) + 111111111111111111111 1 * 2^(30) + 1 * 2^(29) ... + 1 * 2^(0) 으로 계산하기 때문에 표현 가능한 숫자의 범위가 float형보다 적다.​float형은 지수비트가 2^(n) 111111111111111111111 에서 n을 결정하고, 가수부분은 1.0 ~ 2.0 사이의 값을 가진다.​따라서 8비트의 경우의 수 2^(2^(0 ~ 7까지 총 7개))를 표현할 수 있으므로, 표현 범위가 111111111111111111111 넓다​​단점도 존재하는데,int형의 방식을 보면 반드시 정확한 값을 출력하는 반면, float형은 가수부분이 있기 때문에, 너무 큰 수가 입력되어 가수부분으로 표현할 수 있는 경우의 수를 111111111111111111111 넘어버린다면 표현범위 밖의 아주 작은 숫자는 버림으로써 근삿값을 취하게 되어 작은 오차가 발생한다. 처음에는 작은 오차지만 연산을 계속 반복한다면 오차가 점점 커질 수 111111111111111111111 있다.

    댓글목록

    등록된 댓글이 없습니다.