본문 바로가기

Java

자료형 및 산술 연산

 

 

종류\크기

1 byte

2 byte

4 byte

8 byte

     

정수형

byte 

short 

int 

long 

     

실수형

 

 

float

double

     

정수형

 

 char

 

 

     

 

byte -> short / char -> int -> long -> float -> double

------------------->

    이쪽 방향으로 대입시 자동 형변환

 

 

# JAVA에서는 산술 연산시에 int형을 기준으로 산술 연산을 진행한다.

- int형보다 작은 자료형끼리 계산할 경우 int형으로 자동형 변환이 되어서 계산된다.

- 큰 자료형을 작은 자료형에 넣을 경우에 강제형변환을 해줘야한다.

- int형보다 클 경우에는 큰 자료형으로 자동형 변환이 일어난다.

 

 

 

: num1과 num2는 둘 다 byte라서 계산 후, result에 넣어도 문제가 되지 않을 것 같지만

산술 연산을 진행하게 되면 int형이 기준이기 때문에 byte형은 int형으로 바뀌게 된다.

num1과 num2 둘 다 int형으로 변환되어 계산된다. 그래서 더한 결과가 int형이 되고, 이 것을 byte형인 변수에

담을려고 해서 에러가 발생했다.

이를 해결하기 위해서는 result를 int형으로 선언하거나 더한 결과값을 byte형으로 강제형변환 시켜야한다.

 

 

연습문제 29) 형변환을 생략할 수 있는 것은?

char ch = 'A';

int i = 100;

long l = 1000L;

 

d. float f = (float)l; -> float f = l;     // 정수형보다 실수형이 더 큰 자료형으로 인식되어서 자동형변환이 일어난다.

e. i = (int)ch; -> int형이 더 크기 때문에 생략해도 됨. ch는 문자값을 저장하고 있지만 자동형변환이 일어나서 아스키코드값이 저장된다.

 

 

 

# 외우면 좋은 아스키 코드 값

'0' = 48

'A' = 65

'a' = 97    // 대문자와 소문자의 차이는 32

 

'5'를 숫자 5로 바꾸기 위해선 '0'을 뺴주면 된다 => '5' -'0'

 

 

 

 

 

'Java' 카테고리의 다른 글

소수점 자리 표시 방법  (0) 2016.01.25
객체  (0) 2016.01.25
향상된 for문  (0) 2016.01.22
배열  (0) 2015.12.18
자주 쓰는 이클립스 단축키  (0) 2015.12.10