자바의 정석 - 기초편

사칙 연산자, 산술 변환

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