알고리즘/이론정리
c++ 프로모션(연산 시 정수형, unsigned 변환)
ebang
2023. 2. 3. 23:00
c++ 자료형의 프로모션
사칙연산이나 대소 비교 등의 이항 연산자들은 두개의 피연산자를 받는다.
만약 피연산자의 자료형이 다르거나 자료형의 범위가 너무 작은 경우 컴파일러들은 이들을 같은 자료형으로 변환해서 계산하고 이를 프로모션이라고 한다.
c++에서 적용되는 규칙은 다음과 같다.
- 한쪽은 정수형이고 한쪽은 실수형일 경우: 정수형이 실수형으로 변환된다.
- 양쪽 다 정수형이거나 양쪽다 실수형인 경우: 넓은 범위를 갖는 자료형으로 변환된다.
- 양쪽 다 int형보다 작은 정수형인 경우: 양쪽 다 int형으로 반환된다.
- 부호 없는 정수형과 부호 있는 정수형이 섞여 있을 경우 : 부호 없는 정수형으로 변환된다.
연산 될 때 원하지 않는 값이 나오지 않는다면, 조심하도록 하자!