2012-12-12 3 views
-3

지수 코드를 사용하여 아래 코드의 결과는 1입니다. # INF00 -33.000000 0.000000. 방법?지수는 C에서 어떻게 작용합니까

#include<stdio.h> 
int main() 
{ 
    float p=3.5e38f; 
    float n=-3.3e1f; 
    float m=1.0e-38f; 
    printf("%f %f %f",p,n,m); 
} 
+0

숙제를 나눠주기 전에 단 정밀도 수레의 한계를 읽으십시오. – PeterJ

+0

기본적으로 단 정밀도 부동 소수점의 한계에 도달했습니다. 그래서 출력물에 "Infinity"와 "Zero"가 있습니다. http://en.wikipedia.org/wiki/Single-precision_floating-point_format – Aziz

답변

0

정말 기본을 배워야합니다. "어떻게 부동 소수점 연산이 좋은가"에 대한 Google 검색이 좋은 시작일 것입니다.

http://en.wikipedia.org/wiki/IEEE_floating_point

간단히, 첫 번째 숫자는 "무한"(INF)에 오버플로. 두 번째 것은 1의 거듭 제곱으로 3.3 배 증가한 것입니다. 세 번째는 언더 플로우입니다.

관련 문제