3-9 사칙 연산자
컴퓨터는 같은 타입끼리만 계산할 수 있다.
어느 한쪽만 타입을 바꾸면 더 큰 타입으로 타입을 바꾼다.
3-10 산술 변환
산술변환: 연산 전에 피연산자의 타입을 일치시키는 것(두가지 규칙은 꼭 외우기)
1. 두 피연산자의 타입을 같게 일치시킨다.(보다 큰 타입으로 일치)
2. 피연산자의 타입이 int보다 작은 타입이면 int로 변환된다.
300x300만해도 쉽게 short의 범위를 벗어난다.
'2' - '0' = 50 - 48 = 2이다.
char은 int보다 작은 타입이기 때문에 int로 변환해서 계산한다.
문자를 숫자로 바꿀때 왜 '0'을 뺏는지 설명할 수 있게 됐다.
만약 '2'를 int로 형변환하면 50이다.
유니코드에는 문자들이 코드로 쭉 나열되어 있다.
그래서 위에처럼 계산이 가능하다.
실습
연산결과가 int 타입의 범위(+-20억)을 넘을 거 같으면
어느 한쪽을 long타입으로 변환해주자
import java.util.Scanner;
public class lnterfaceEx {
public static void main(String[] args) {
int a = 1_000_000;
int b = 2_000_000;
long c = a * b; // int a * int b = -1454759936
long d = (long)a * b; // a나 b를 long으로 형변환해줘야 올바른 값이 나온다.
System.out.println(c);
System.out.println(d);
}
}
c = -1454759936
d = 2000000000000
'프로그래밍 언어 > 자바의 정석 기초편' 카테고리의 다른 글
자바의 정석 기초편 ch3-13,14 비교 연산자, 문자열의 비교 (0) | 2022.05.12 |
---|---|
자바의 정석 기초편 ch3-11,12 반올림 Math.round(), 나머지 연산자 (0) | 2022.05.12 |
자바의 정석 기초편 ch3-7,8 형변환 연산자, 자동 형변환 (0) | 2022.05.11 |
자바의 정석 기초편 ch3-5,6 증감연산자, 부호연산자 (0) | 2022.05.10 |
자바의 정석 기초편 ch3-3,4 연산자의 우선순위와 결합규칙 (0) | 2022.05.10 |