형 변환

💟 형변환 Type Conversion 

데이터 타입을 변환한다. 장동 형변환 & 명시적 형변환이 있따

 

ex) int →  doublebit는 0과 1로 구성되어 있어.200은 00000000 00000000 00000000 11001000200.0은 01000011 01001000 00000000 00000000 표현하지표현 되는 수는 사람이 봤을 때 동일하지만, 컴퓨터는 소수점의 차이까지 다르게 인식해이렇게 형식이 다른 두 데이터를 더하려고 할 때, a의 데이터 타입을 b 데이터 타입으로 바꿔줘야 하는데우리는 그거슬 형변환이라고 부르기로 했어요

 

또, 자바가 자동으로 전환해 주는 것을 자동(암시적) 형변환이라함

 

 

💟 형변환 규칙

byte → short → int → long → float → double
<            정    수            >    <    실  수     >
            char → int
double a=3.0F; //상수에 F가 있어서 변수도 그에 맞는 데이터 타입인 float를 써야해. but 자바가 자동 형변환해서 오류 발생x

float a=3.0; //Err. 상수 뒤 아무것도 없으면 실수 기본형인 double이라 오류 & 자동 형변환 안해줌. Why? 허용범위 double>float

자동 형변환 원칙은 표현 범위가 좁은 데이터 타입 → 넓은 타입의 변환만 허용

 

ex) 변수 c의 데이터 타입은?? "double"

int a=3;       < a의 데이터 타입은 int
float b=1.0F;  < b의 데이터 타입은 float
double c=a+b;  < "a+b"의 경우 int → float 가능, but float → int로는 안돼. so 3.0F+1.0F 가 됨
               < c의 데이터 타입은 double. float → double은 가능하나 그 반대는 안돼. so, 4.0D로 체체체첸지

 

 

💟 명시적 형변환

Explicit Conversion. 수동으로 형 변환

→ (데이터 타입)데이터값  < 이렇게 쓰면 돼

float a=100.0;int b=100.0F;둘다 Err.so, 명시적 형변환을 해주자!

float a=(float)100.0;
int b=(int)100.0F;

 

'하다보면 되겠지 머.,. > 생활코딩_JAVA' 카테고리의 다른 글

조건문  (2) 2021.09.14
연산자, 비교와 Boolean  (0) 2021.09.14
상수의 데이터 타입  (0) 2021.09.05
변수의 데이터 타입  (0) 2021.09.05
변수, 주석과 세미콜론  (0) 2021.09.04