c 자료형의 확장,축소

떵떵·2022년 6월 4일
0

프로그래밍 중 서로다른 자료형으로 연산을 할 때가 많음

서로다른 자료형끼리 연산을 할 때 정해진 규칙에 대해 알아보자

형 확장

int main()
{
	int num1 = 11;
    float num2 = 4.4f;
}

위 코드처럼 정수와 실수를 선언하고

printf("%f \n", num1+num2);
위 코드 오류 안 남 - %f

printf("%d \n", num1 + num2);
위 코드 오류 남 - %d

이유:
자료형을 섞어서 계산을 하면 컴파일러에서 '암시적 형 변환'함
자료형의 크기가 큰 쪽, 표현 범위가 넓은 쪽으로 자동 변환 됨.

-> '형 확장'이라고 함.

형 축소

int main()
{
	float num1 = 11;
    float num2 = 5;
    
    int num = num1/num2;
    
    printf("%d", num);
}
>>> 2

위 코드의 출력값은 2.2가 나와야 하는데 2가 나옴
왜그럴까??

정수형(int)자료형에서는 정수만 나올 수 있으니까 소수점 자리의 0.2는 버려지게 됨

자료형의 크기가 작은쪽, 표현 범위가 좁은 쪽으로 변환되는 것을 '형 축소'라고 함.

형 축소가 일어나면 값의 손실 발생

컴파일 경고가 나오지 않게 하려면 형변환을 해야 함

0개의 댓글