Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 컴파일러에서 부동 소수점은 어떻게 저장됩니까?

<시간/>

C 프로그래밍 언어에서 float는 부동 소수점의 약어입니다.

  • 부동 소수점 숫자는 일반적으로 IEEE(Institute of Electrical and Electronics Engineers) 형식으로 표시됩니다.

  • IEEE 형식은 2의 거듭제곱을 나타내기 위해 부호 비트, 가수 및 지수를 사용합니다.

  • 부호 비트는 숫자의 부호를 나타냅니다. a 0은 양수 값을 나타내고 a 1은 음수 값을 나타냅니다.

  • 가수는 정규화된 형식으로 변환된 후 이진법으로 표시됩니다. 정규화 가수 후 최상위 숫자는 항상 1입니다.

  • 지수는 양의 정수 바이어스를 추가한 후 부호 없는 바이너리 형식으로 저장된 정수입니다.

  • 이렇게 하면 저장된 지수가 항상 양수가 됩니다.

  • float의 경우 bias는 127이고 double의 경우 bias는 1023입니다.

예시

다음은 C 언어에서 부동 소수점 수를 소수점 이하 네 자리로 반올림하는 C 프로그램입니다. -

#include <stdio.h>
int main(){
   float var = 37.66666;
   printf("%.4f", var);// rounding to four decimal points
   return 0;
}

출력

위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -

37.6667

다음은 C 언어에서 부동 소수점 수를 소수점 8자리로 반올림하는 C 프로그램입니다. -

프로그램

#include <stdio.h>
int main(){
   float var = 78.67;
   printf("%.8f", var);
   return 0;
}

출력

위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -

78.66999817