산술 변환
다양 한 이항 연산자 (에서 설명한 이진 연산자를 사용 하 여 식을) 고 피연산자를 변환 하면 결과가 동일한 방식으로.이러한 연산자 변환 될 방법은 "일반적인 산술 변환이 있습니다." 라고 합니다. 산술 변환이 다른 네이티브 형식의 피연산자는 다음 표에 나와 있는 것 처럼 수행 됩니다.형식 정의 형식은 내부 네이티브 형식에 따라 동작합니다.
형식 변환에 대 한 조건
조건 충족 |
변환 |
---|---|
두 피연산자의 형식이 긴이중. |
다른 피연산자 형식으로 변환 되며 긴이중. |
조건이 충족 되지 않은 및 피연산자 앞 형식입니다 이중. |
다른 피연산자 형식으로 변환 되며 이중. |
충족 조건 및 피연산자 앞 형식입니다 부동 소수점. |
다른 피연산자 형식으로 변환 되며 부동 소수점. |
충족 되지 않은 조건이 앞 (피연산자의 부동의 형식 되지 않음). |
정수 계열 홍보 피연산자에는 다음과 같이 수행 합니다.
|
다음 코드는 표에 설명 된 변환 규칙을 보여 줍니다.
// 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.