형 변환이란?
- 값의 타입을 다른 타입으로 변환하는 것으로 boolean을 제외한 기본형은 서로 형 변환이 가능하다.
자동 형 변환(묵시적 형 변환) | 강제 형 변환(명시적 형 변환) |
작은 자료형 → 큰 자료형 | 큰 자료형 → 작은 자료형 |
1. 자동 형 변환(묵시적 형 변환)
- 데이터 범위가 작은 자료형을 큰 자료형으로 변환
- 자동으로 형 변환이 이루어지기 때문에 따로 형변환을 하지 않아도 됨
- 정수형
byte b = 10; // 1byte
short s = b; // 2byte
int i = s; // 4byte
long l = i; // 8byte
- 실수형
byte, short타입의 데이터는 연산 시 무조건으로 int 타입으로 변환 후 처리- float, double은 표현 가능한 수의 범위가 더 크기 때문에 자동 형 변환 가능
float f = l; // 4byte
double d = l; // 8byte
2. 강제 형 변환(명시적 형 변환)
[표현법] (자료형) 데이터;
- 범위가 큰 크기의 자료형의 데이터를 작은 크기의 자료형으로 변환하려고 할 때 사용
- 강제 형 변환의 경우 데이터 손실이 발생
- char ↔ int : 각 문자들마다 고유한 숫자가 지정되어 있기 때문에 쌍방향으로 형변환 가능(유니코드)
- char는 음수값 저장 불가 -> 값의 범위가 0~65535
double d = 4.12345678904567890; // 소수점 15자리수까지 표현
float f = (float) d; // 소수점 6자리수까지 표현
int i = (int)f; // 데이터 손실 발생
System.out.println(d); // 4.1234567890456789
System.out.println(f); // 4.123457
System.out.println(i); // 4
int sum = (int)(i + d); // 8
int sum2 = i + (int)d; // 8
--------------------------------------------------------
int number = 290;
byte bNumber = (byte)number; // -128 ~ 127
System.out.println(bNumber); // 34
--------------------------------------------------------
int number2 = 128;
byte bNumber2 = (byte)number2;
System.out.println(bNumber2); // -128
--------------------------------------------------------
int num = 'A';
System.out.println("num : " + num); // 65
char ch = 50000;
System.out.println("ch : " + ch); // 썐
'+ > Java' 카테고리의 다른 글
연산자 (0) | 2023.12.08 |
---|---|
keyboardInput 기능 - Scanner 클래스 (0) | 2023.12.08 |
출력문 - print, println, printf 구분하기 (0) | 2023.12.07 |
변수(Variable) - 1 (0) | 2023.11.10 |
자바 기본 개념 짚고 가기 (0) | 2023.11.01 |