Coding Note/Java

Java 2-1) 우선순위 / 자료형 변환(Cast) / e의 의미

푸린이 2021. 12. 8. 01:46

1. 자료형의 우선순위

자료형 byte 우선순위
(그릇이 작을수록 낮음)
boolean 1 낮음
byte 1  
short 2  
int 4  
long 8  
float 4 (소수점이 있는 실수가 long보다 우선)
double 8 높음
     
char 2 (한 글자당 2byte)  
String ex. "ABC" → 6 byte  

 

2. (자료형) 변환

- 자동 (자료)형 변환 → 작은 그릇에서 큰 그릇으로 부어서 넘치지X, 자연스러움

- 강제 (자료)형 변환 → Cast 변환, 큰 그릇의 물을 작은 그릇에 붇다.

// 자동
short sh = 12345;  // 2byte
int num;  // 4byte
		
num = sh;  // 대입 방향 : 우 -> 좌
System.out.println(num);
		
// 강제
num = 23456;  // 그 범위의 값이 넘어가지 않는 범위에서 작성
sh = (short)num;
System.out.println(sh);

- 강제 (자료)형 변환 시, 강제로 변환 당할 자료형을 괄호 안에 넣어주지 않으면 이상한 값이 출력된다.

출력값

 

int number1, number2;
float fnum;
		
number1 = 3;
number2 = 2;
		
fnum = (float)number1 / number2;  // float가 먼저 실행(3.0)되고 나눗셈 실행
System.out.println(fnum);

출력값

- number1, number2가 int라서 변환

- 자동형이지만 강제형으로 변환

- 지금은 자료형끼리 변환되지만, 나중엔 클래스에서도 cast 변환 사용

 

long l = 123456789L;
float f;
		
f = l;
System.out.println(f);

출력값

- long이 실수인 float으로 변환된다.

 

* 소수점에 있는 e의 의미

double d = 1.23e3;
System.out.println(d);

- 1.23e3의 e3 == 10의 3승 === 1000  → 1.23 * 1000 = 1230

출력값

d = 2.34e-2;
System.out.println(d);

- 2.34e-2의 e-2 == 1/10의 2승 == 0.01  → 2.34 * 0.01 = 0.0234

출력값