728x90
char형 변수를 int형으로 변환하고 싶을 때, '5'-'0' 이런 식으로 '0'을 빼준 적 있지 않으신가요??
그 원리에 대해서 알아봅시다.
산술변환이란?
"연산 전에 피연산자의 타입을 일치시키는 것"
만약에 float 타입과 int타입이 있다면 int 타입을 float 타입으로 자동 형변환 해줍니다.
int i=10;
float f=20.0f;
float result=f+(float)i;
//float result=f+i; 와 동일함 int -> float의 경우(작은 값 -> 큰 값)
//형변환 명시를 안해줘도 자동으로 해줍니다.
또한 int타입보다 작은 타입들은 자동으로 int로 변환이 됩니다.
앞의 char타입인 '5' - '0'의 경우 char 타입이 int로 자동 변환됩니다.
문자 '5'는 아스키코드표 기준 53에 해당되고 문자 '0'은 48입니다.
53 - 48 = 5가 되면서 int 타입 5를 얻을 수 있습니다.
참고
자바의 정석
728x90
'Java' 카테고리의 다른 글
[JAVA] JVM 구성 요소 (0) | 2021.03.29 |
---|---|
[java] JIT 컴파일러란? (0) | 2021.03.25 |
바이트 코드란? (0) | 2021.03.23 |
JVM이란? - 특징 (0) | 2021.03.22 |
[java] 변수 (0) | 2021.03.10 |