본문 바로가기
프로그래밍 언어/자바의 정석 기초편

자바의 정석 기초편 ch3-9,10 사칙 연산자, 산술변환

by life grow 2022. 5. 12.

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