3.11 부동소수점

공기훈·2021년 7월 21일
0

홍정모의 따배씨

목록 보기
1/49
#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main()
{
	printf("%u\n", sizeof(float)); //
	printf("%u\n", sizeof(double)); //double의 2배 byte 사용하므로 이름이 double
	printf("%u\n", sizeof(long double)); //부동소수점 표현 3가지  visual studio 에서는 double = long double
	// 다른 개발환경에서는 각각 4, 8, 12

	float f = 123.456f; // f 붙여주는게 좋음.. 안 그러면 경고 뜸
	double d = 123.456;

	float f2 = 123.456; // 여기에 대해 경고! 메모리가 작은 f에다가 메모리가 큰 double을 집어넣으려했으므로,, 
	//그러나 유효숫자 6자리라 이 상황은 딱히 문제 없
	double d2 = 123.456f;

	int i = 3;
	float f3 = 3.f; //3.0f  float 쓸 때는 .을 붙여주는 게 좋다. 컴퓨터 입장에서 .을 안 찍으면 정수형이지만, .을 찍게되면 실수형으로 인식
	double d3 = 3.; //3.0   

	float f4 = 1.234e10f;//1.234 x 10^10 인 float

	float f5 = 0xb.ap1; // e 대신 p 쓴 거,, 
	double d5 = 1.0625e0; 

	printf("%f %F %e %E\n", f, f, f, f); //123.456001 123.456001 1.234560e+02 1.234560E+02
											//f는 float 형으로, e는 지수형으로 표현 
	printf("%f %F %e %E\n", d, d, d, d);
	printf("%a %A \n", f5, f5); //0x1.7400000000000p+4 0X1.7400000000000P+4  16진수형으로
	printf("%a %A \n", d5, d5); //0x1.1000000000000p+0 0X1.1000000000000P+0  16진수형으로
								// 1.0625는 1/16, 16진수에서의 0.1이 1/16에 대응




	return 0;

}
profile
be a coding master

0개의 댓글