산술 변환

다양 한 이항 연산자 (에서 설명한 이진 연산자를 사용 하 여 식을) 고 피연산자를 변환 하면 결과가 동일한 방식으로.이러한 연산자 변환 될 방법은 "일반적인 산술 변환이 있습니다." 라고 합니다. 산술 변환이 다른 네이티브 형식의 피연산자는 다음 표에 나와 있는 것 처럼 수행 됩니다.형식 정의 형식은 내부 네이티브 형식에 따라 동작합니다.

형식 변환에 대 한 조건

조건 충족

변환

두 피연산자의 형식이 긴이중

다른 피연산자 형식으로 변환 되며 긴이중

조건이 충족 되지 않은 및 피연산자 앞 형식입니다 이중.

다른 피연산자 형식으로 변환 되며 이중.

충족 조건 및 피연산자 앞 형식입니다 부동 소수점.

다른 피연산자 형식으로 변환 되며 부동 소수점.

충족 되지 않은 조건이 앞 (피연산자의 부동의 형식 되지 않음).

정수 계열 홍보 피연산자에는 다음과 같이 수행 합니다.

  • 피연산자 중 하나가 형식인 경우 unsigned, 다른 피연산자 형식으로 변환 되며 unsigned long. 

  • 앞지 않습니다 조건이 충족 되는 경우 한 피연산자의 형식이 면 , 다른 종류의 unsignedint, 두 피연산자 형식으로 변환 됩니다 unsigned long. 

  • 앞의 두 가지 조건에 맞을 경우 한 피연산자 중 하나가 형식인 경우 , 다른 피연산자 형식으로 변환 되며 .

  • 위의 세 가지 조건이 충족 되지 않으면 및 피연산자 중 하나가 형식인 경우 unsigned int, 다른 피연산자 형식으로 변환 되며 unsigned int.

  • 앞의 조건 중 만족 되 면 두 피연산자 형식으로 변환 됩니다 int.

다음 코드는 표에 설명 된 변환 규칙을 보여 줍니다.

// arithmetic_conversions.cpp
double dVal;
float fVal;
int iVal;
unsigned long ulVal;

int main() {
   // iVal converted to unsigned long
   // result of multiplication converted to double
   dVal = iVal * ulVal;

   // ulVal converted to float
   // result of addition converted to double
   dVal = ulVal + fVal;
}

이전 예에서 첫 번째 문은 곱하기 두 개의 정수 계열 형식의 표시 iVal 및 ulVal.조건을 충족 형식 부동의 두 피연산자는 하나의 피연산자 형식입니다 unsigned int.따라서 다른 피연산자를 iVal, 형식으로 변환 되며 unsigned int.결과가 할당 된 dVal.해당 피연산자 하나는 유형의 조건을 충족 됩니다 이중. 따라서는 unsigned int 형식으로 곱셈 결과로 변환 됩니다 이중.

앞의 예제에서 두 번째 명령문 추가를 보여 줍니다 있는 부동 소수점 과 정수 계열 형식 fVal 및 ulVal.ulVal 변수 형식으로 변환 됩니다 부동 소수점 (테이블의 셋째 조건).결과 수의 형식으로 변환 되며 이중 (조건이 테이블에 두 번째)에 할당 하 고 dVal.

참고 항목

참조

표준 변환