티스토리 뷰

배운 것 기록/java

[eclipse] 형변환

키죽 2022. 4. 26. 21:34

형변환 Type Casting

- 데이터 타입이 서로 다른 데이터를 연산하기 위해 형변환 발생

byte a = 10;
int b = a;
        
System.out.println(b);	// 10

 

- 표현 범위가 좁은 데이터 타입에서 넓은 데이터 타입으로 변환

byte  => short        
    =>  int =>  long =>  float =>  double
  char        

실수형이 정수형보다 넓은 데이터

 

 

1. 자동(묵시적, 암시적)형변환

- 작은 데이터 타입 => 큰 데이터 타입

형변환 할 시, 자연스럽게 변환 가능하므로 자동형변환 발생!

음수 저장 가능한 byte, int 등의 타입은 char 타입으로 자동변환 불가!

int a = 3;
float b = 1.0F;
double c = a + b; // a와 b 더하기 위해서 형변환 일어나야함 
	// 1. a + b 연산을 하기 위해서 int형인 a -> float로 자동형변환
	// 2. a + b 연산 결과는 float, double형인 c에 저장할 때 자동형변환 발생!
	// 총 2번 자동형변환이 일어남!
System.out.println(c);	// 4.0

 

2. 강제(명시적)형변환

- 자동형변환이 적용되지 않는 경우! 수동으로(강제로) 형변환

float a = 100.0;
int b = 100.0F;

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

 

강제 형변환은 큰 -> 좁은 데이터 타입으로 변환되는 것으로

데이터 오버플로우 data overflow가 발생할 수 있기 때문에 강제로 형변환할 것을 명시해야한다.

// 오버플로우 발생 예
short s = 129;	// 127, 128, 129, 130
byte b = (byte)s;
System.out.println(b);	// 127, -128, -127, -126

 

오류

byte b = 127; 
char c = (char)b;	// 0~65000 음수없음
System.out.println(c);
		
short s = 10000;
c = (char)s;		// 음수 때문에 안 넣어짐
System.out.println(c);

 

 

그나마 조금 이해되던 파트... 그래도 손에 식이 안 익는다.

이 뒤부터는 더 암담함.

'배운 것 기록 > java' 카테고리의 다른 글

[eclipse] 조건문  (0) 2022.04.27
[eclipse] 연산자  (0) 2022.04.26
422 String, printf(), println()  (0) 2022.04.24
422 변수  (0) 2022.04.24
422 상수, 기본 데이터 타입  (0) 2022.04.23
댓글
최근에 올라온 글
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함