자바의 정석 - 기초편
사칙 연산자, 산술 변환
ODaram
2022. 8. 1. 17:46
사칙 연산자 + - * /
int / int -> int
10 / 4 -> 2 // 소수점 이하는 버려진다
> 소수점을 얻으려면 한쪽을 float로 만들어줌
int / float -> float / float -> float
10 / 4.0f -> 10.0f / 4.0f -> 2.5f
산술 변환
"연산 전에 피연산자의 타입을 일치시키는 것"
1) 두 피연산자의 타입을 같게 일치시킨다. (보다 큰 타입으로 일치 = 값손실을 일어나지 않게 하려고)
long(8byte) + int(4byte) -> long + long -> long
float(4byte) + int(4byte) -> float + float -> float (실수 > 정수)
double (8byte) + float(4byte) -> double + double -> double
2) 피연산자 타입이 int 보다 작은 타입(byte,char,short)이면 int 로 변환된다. (오버플로우 발생하기 때문)
byte(1byte) + short(2byte) -> int + int -> int(4byte)
char(2byte) + short(2byte) -> int + int -> int(4byte)
byte : -128 ~ 127
char : 0 ~ 6만
short : +- 3만
ex)
'2' - '0' => 50 - 48 -> 2
char - char => int - int