Java/모두의 자바

Chapter 02-08 기본형 형변환(Casting)

계란💕 2022. 2. 3. 12:18

 

02-08.1 기본형 개념

  - 형변환(Casting): 변수 또는 리터럴의 형을 다른 형으로 변환하는 것을 말한다. (묵시적 형변환 /  명시적 형변환)

  - 2byte: short/ character

  - 4byte: int

  - 8byte: long

 

  Note) long(8byte)와 float(4byte) 중에서 무엇이 더 클까?

       - float가 더 크다.

       - 실수는 소수점 뒤까지 자릿수가 필요하므로 실수를 더 큰 형으로 인식한다.

 

02-08.2 int형 값을 long형에 넣는 경우

  Ex)

<hide/>

public class TypeCastingExam {
	
	public static void main(String args[]) {
		
		int x = 50000; 
		long y = x;    // int보다 큰 long형 변수 
		System.out.println(y);
				
	}
}

  - long 보다 작은 int 형을 넣을 때 자연스럽게 형변환이 일어나며 컴파일 오류가 나지 않는다. 

  - 이를 "묵시적(암묵적) 형변환"이라고 한다. (작은 자료형을 큰 자료형으로 바꿀 때)

 

02-08.3 long값을 int형에 넣는 경우

  Ex) 형변환 하기 전

<hide/>

public class TypeCastingExam {
	
	public static void main(String args[]) {
		
		int x = 50000; 
		long y = x;    // int보다 큰 long형 변수 
		System.out.println(y);
				
		long x2 = 5;
		int y2 = x2;
		System.out.println(y2);
		
	}
}

  Note) 출력 결과

  - 02-08-2 경우와는 다르게 컴파일 에러가 발생한다. 

  - 컴파일 에러가 발생하지 않도록 "이 값을 int형에 담아도 좋다"라고 알려주어 형변환 해야 한다. 

  - 형변환 하려면 값을 넣기 전에 해당 형을 괄호 한에 넣어 준다.

  - 이를 "명시적(강제적) 형변환"이라고 한다. (큰 자료형을 작은 자료형으로 바꿀 때)

 

  Ex) 형변환 이후

<hide/>

public class TypeCastingExam {
	
	public static void main(String args[]) {
		
		int x = 50000; 
		long y = x;    // int보다 큰 long형 변수 
		System.out.println(y);
				
		long x2 = 5;
		int y2 = (int)x2;   // 명시적 형변환
		System.out.println(y2);
		
	}
}

  Note) 출력 결과:  명시적 형변환 후에는 오류가 발생하지 않는다.   

 

 

'Java > 모두의 자바' 카테고리의 다른 글

Chapter 02-10 비교 연산자  (0) 2022.02.03
Chapter 02-09 산술 연산자  (0) 2022.02.03
Chapter 02-07 기본형  (0) 2022.02.03
Chapter 02-06 상수  (0) 2022.02.03
Chapter 02-05 변수  (0) 2022.02.03