c++ 책보다가..


(하하아하) #1

cout으로 char형을 정수로 표현하는걸 인터넷에 검색해 봤습니다.

두가지 방법이 추천을 가장 많이 받았는데, 하나는 static_cast를 이용하는 방법이고,
하나는 unary operator +를 이용하면 자동으로 int로 캐스팅 해주는걸 이용하는 방법이었습니다.

이 +는 char형만 자동으로 int로 캐스팅 해주는 걸까요?
+에 대해선 검색해봐도 잘 안나오더라구요…++정도나 나오고.


(codesafer) #2
char a = 'A';
cout << (int)a;

이게 보편적인 방법입니다.

덧셈 연산으로 정수형으로 바뀌는 경우는 0 + ‘A’ 처럼 char 형 보다 큰 int 형과의 연산일때죠.
이때, 작은 타입은 큰타입을 따라가게 됩니다. char -> short -> int -> float -> double 처럼요.
그걸 type high promotion 이라고 합니다. ‘형승급’ 이라고도 하죠.

부호 연산을 이용한 ( unary ) 형승급은 써보질 않았네요 : )
그런게 되나? ( 된다 하더라도 첫번째 방법을 쓰겠습니다 )


(하하아하) #3

감사합니당