2016. 11. 23. 15:48 C++/정보
C++] 암시적/명시적 형변환
들어가기 이전]
[16비트]
char : 1Byte
short : 2Byte
int : 2Byte
long : 4Byte
long long : 지원하지 않음
[32비트]
char : 1Byte
short : 2Byte
int : 4Byte
long : 4Byte
long long : 8Byte
[64비트]
char : 1Byte
short : 2Byte
int : 4Byte
long : 8Byte
long long : >= 8Byte
============================================================================
1. 정수 (사칙연산) 정수 == 정수
ex) 7/2 == 3
2. 정수 (사칙연산) 실수 || 실수 (사칙연산) 정수 == 실수
ex) 5,0/2 == 2.5
3. 자동 형변환
두 자료형으로 연산을 하면 연산자와 피연산자 중 더 큰 자료형으로 자동 형변환
char < short < int < long < long long < float < double < long double
4. 명시적 형변환
- (자료형)변수명
ex1)
double dVal = 3.5;
int nRst = (int)dVal;
==> nRst == 3
ex2)
int nVal1 = 10, nVal2 = 5;
double dRst1 = (double)nVal2/nVal1;
double dRst2 = nVal2/nVal1;
==>
dRst1 == 0.5
dRst2 == 0.0
*** 해석: 명시적 형변환의 우선 순위는 사칙연산(산술 연산자)보다 더 높다.
그러므로 (double)nVal2에서 nVal2는 실수형으로 변경되고 실수/정수
의 사칙연산으로 인정되어 결과는 실수가 나오는 것이다.
'C++ > 정보' 카테고리의 다른 글
C++] 쉬어가기 - C++ 코딩의 정석 / 코딩의 기본 규약 (0) | 2016.12.13 |
---|---|
C++] malloc/free new/delete 차이 (2) | 2016.12.06 |
C++] 상속과 Virtual 함수 (0) | 2016.12.06 |
C++] String int/double/float 등으로 형변환 (0) | 2016.11.29 |
C++] CString 매개변수로 넘기기 (0) | 2016.11.11 |