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