반응형
정수와 정수의 연산
1. 정수와 정수의 연산
- 정수와 정수를 나눗셈 하여 실수 결과가 나올 때는 어떻게 출력될까?
- 예를 들어 5를 2로 나눈다면, 실제 정답은 2.5이다. 그러나 C에서는 결과값을 실수형 변수로 선언하더라도, 정수와 정수의 연산 결과값으로 실수를 출력할 수 없다.
int num1=0, num2=0;
float result=0.0;
result = num1 / num2;
- 위의 코드와 같이 입력하고 실행 하더라도 결과는 2.00000이 된다. 왜냐하면 오른쪽의 정수형 끼리의 연산 결과는 항상 정수형이고, 정수형의 결과(2)를 실수로 표현하는 것이 마지막 줄의 연산이기 때문이다.
- 이를 해결하기 위해서는 캐스트(cast)가 필요하다.
2. 캐스트(Cast)
- 캐스트 연산자: 자료형을 강제로 변환하는 연산자. 변수의 자료형 자체를 변경하지 않고, 코드 내의 특정 부분에서만 임시로 자료형을 변환하는 것.
- 강제 캐스트: 강제적으로 변수의 자료형을 변환하는 것.
- 강제 캐스트 방법: (자료형)변수명; ex) (float)num1/num2;
3. 정수와 실수의 연산, 자동 캐스트
- 정수와 실수를 함께 연산하는 경우, 그 결과는 자동으로 '실수'로 변환된다. 이를 자동 캐스트라고 한다.
- 정수와 실수 연산의 결과가 실수인 이유는, 실수가 더 넓은 범위의 숫자를 표현하는 자료형이기 때문이다.
반응형
'C' 카테고리의 다른 글
[C언어] 문자형 변수 - 코드119 (0) | 2023.04.17 |
---|---|
[C언어] 실수형 변수의 출력 범위 - 코드 119 (0) | 2023.01.10 |
[C언어] 부동 소수점, 고정 소수점 - 코드 119 (0) | 2023.01.10 |
[C언어] 스택 메모리 구조, LIFO, FIFO - 코드 119 (0) | 2023.01.10 |
[C언어] 오버플로우, 언더플로우 - 코드 119 (0) | 2023.01.10 |