알고리즘/이론정리

c++ 프로모션(연산 시 정수형, unsigned 변환)

ebang 2023. 2. 3. 23:00
반응형

c++ 자료형의 프로모션

 

사칙연산이나 대소 비교 등의 이항 연산자들은 두개의 피연산자를 받는다. 

만약 피연산자의 자료형이 다르거나 자료형의 범위가 너무 작은 경우 컴파일러들은 이들을 같은 자료형으로 변환해서 계산하고 이를 프로모션이라고 한다. 

 

c++에서 적용되는 규칙은 다음과 같다. 

 

  1. 한쪽은 정수형이고 한쪽은 실수형일 경우: 정수형이 실수형으로 변환된다.
  2. 양쪽 다 정수형이거나 양쪽다 실수형인 경우: 넓은 범위를 갖는 자료형으로 변환된다.
  3. 양쪽 다 int형보다 작은 정수형인 경우: 양쪽 다 int형으로 반환된다. 
  4. 부호 없는 정수형과 부호 있는 정수형이 섞여 있을 경우 : 부호 없는 정수형으로 변환된다. 

 

연산 될 때 원하지 않는 값이 나오지 않는다면, 조심하도록 하자!

반응형