[Java] 암시적 형변환
본문 바로가기
Java

[Java] 암시적 형변환

by IYK2h 2022. 5. 17.
728x90

암시적 형변환의 규칙은 아래와 같다.

*reference - https://opentutorials.org/course/1223/5330

float->double 로 가는 경우 4 byte -> 8 byte 인데 암시적 형 변환이 가능한지에 대해서 의문이 생길 수 있다.

역으로 형변환을 할 시 byte 패딩을 제거하며 변환되기 때문에 값이 변질될 수 있습니다.

자료형의 메모리 공간 크기를 기준으로 변환하는 것이 아닌, 값의 표현 범위를 기준으로 변환하기 때문에 가능하다.

byte a = 15;
short b = a; //암시적 형 변환

명시적 형변환

구문

[자료형] [변수명] = (자료형)[변수명 또는 리터럴];
int a = (int) 300000000000L;
​
long b = 12345;
int a = (int)b;
float a = 3.14213123F;
​
// 단정도(4 byte) 부동소수점을 정수로 변환
int b = (int)a;
​
// 변수 b에 실제로 저장된 값 : 3

연산시 형 변환

정수형

short a = 70;
short b = 80;
​
a+b; // 정수형 끼리의 산술 연산을 4 byte 정수형으로 암시적 현 변환된다.
​
// 즉, short sum = a+b; 가 아닌
int sum = a+b; //이다.

정수와 float 산술

float a = 7.0F;
int b = 8;
​
float sim = a+b;
//4 byte 실수형으로 암시적 형 변환

정수와 double 산술

double a = 7.0;
int b = 8;
​
double sim = a+b;
//8 byte 실수형으로 암시적 형 변환
728x90

댓글