+/Java

변수(Variable) - 2 (형 변환)

writtenbyrla 2023. 11. 21. 22:30

형 변환이란?

  • 값의 타입을 다른 타입으로 변환하는 것으로 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