데이터타입을 다른 데이터 타입으로 변환하는 것을 말한다.
1. 형변환
- 같은 자료형끼리의 연산(+,-,*,%) 결과는 같은 자료형
- int*int =int //인트형 곱하기 인트형은 인트형!
double*double = double
→더블형 곱하기 더블형은 더블형
2. 자동형 타입 변환
자동타입변환은 프로그램 실행 도중에 자동으로 타입 변환되는 것을 말한다.
- 작은 형에서 큰 형으로 변환할 때 자동으로 형변환됨
- 데이터 손상이 없음
- int = double; ⇒ double = double; double형이 더 크므로 자동 형변환(auto casting)
- 컴파일러에 의해 원래의 타입보다 큰 타입으로 자동 변환
- int형 아래 연산 시 자동으로 int형으로 형변환(short, byte, char, boolean) byte(10)+10
- 정수타입 변수가 산술 연산식에서 피연사자로 사용되면 int타입으로 자동타입변환
- 만약 int타입보다 크다면 long 타입으로 변환
byte b2=10;
byte b3=20;
byte b3=b2+b3 //에러 발생* 자동으로 b2, b3이 int형으로 바뀌기 때문
int b3=b2+b3 // 따라서 int형으로 바꿔줘야 함
- 작은형+큰형 → 큰형+큰형 : 자동으로 둘 다 큰 형으로 바뀜
3. 강제 타입 변환
✅ (변환될 자료형)data;
Ex) int i =10; → byte i로 바꾸고 싶으면 (byte) i;
- 강제 형변환(명시적 형변환): 프로그래머가 강제로 함
- 큰 자료형에서 작은 자료형으로 변환할 때 사용
- 강제 타입 변환은 데이터 손상 발생이 발생한다.
- int 10과 byte 10을 2진수로 바꾸면 다음과 같다.
- int 00000000 00000000 00000000 00001010
- byte 00001010
- 2진수로 바꾸면 인트형10과 바이트10이 다르다는 것을 알 수 있음
- 따라서 인트형을 바이트로 바꾸면 원래 데이터가 손상됨
- 문자열을 기본 타입으로 강제 타입 변환 프로그램에서 문자열을 기본 타입으로 변환하는 경우 多
✅ 타입 변수명 = 타입.parseByte(String변수명);
잘봤습니다.