일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 다형성
- 인터페이스
- SSR
- 코린이
- node.js
- throws
- 졸리다
- 바이트 단위 스트림
- 자료형
- 백엔드
- exception
- 새벽공부
- 변수
- 문자 단위 스트림
- 상속
- 개발자
- ArrayList
- 메서드
- MPA
- 코딩
- 배열
- 파이팅
- Java
- 자바
- try-catch
- FileInputStream
- 인스턴스
- 초보개발자
- 보조 스트림
- 예외 처리
- Today
- Total
SHUSTORY
02-5 형 변환 본문
형 변환
정수와 실수는 컴퓨터 내부에서 표현되는방식이 전혀 다르다.
따라서 정수와 실수를 더한다고 할 때 그대로 연산을 수행할 수 없고 하나의 자료형으로 통일한 후 연산을 해야 한다.
이 경우 형 변환이 이루어진다.
형 변환에는 묵시적 형 변환(자동 형 변환)과 명시적 형 변환(강제 형 변환) 두 종류가 있다.
* 바이트 크기가 작은 자료형에서 큰 자료형으로 형 변환은 자동으로 이루어진다.
* 덜 정밀한 자료형에서 더 정밀한 자료형으로 형 변환은 자동으로 이루어진다.
화살표 방향으로 묵시적 형 변환이 일어나며, 반대로 형 변환을 하려면 강제로 변환해야 한다.
화살표 방향으로 형 변환이 이루어질 때는 자료 손실이 없지만, 그 반대인 경우에는 자료 손실이 발생할 수도 있다.
묵시적 형 변환
바이트 크기가 작은 자료형에서 큰 자료형으로 대입하는 경우
예를 들어 byte형 변수의 값을 int형 변수에 대입할 경우,
1바이트 크기의 값을 4바이트 자료형의 변수에 대입하게 되므로 자료 손실 없이 형 변환이 이루어지며
남은 3바이트는 0으로 채워진다.
덜 정밀한 자료형에서 더 정밀한 자료형으로 대입하는 경우
두 변수의 크기가 같은 4바이트라도 정수형보다 실수형 자료형이 더 정밀하게 데이터를 표현할 수 있으므로
실수형인 float로 전환된다.
연산 중에 자동 변환되는 경우
마지막 행에서 두 번의 형 변환이 이루어진다.
먼저 fnum + iNum에서 int 형이 float형으로 변환되고, 두 변수를 더한 결과 값이 double 자료형으로 변환된다.
이와 같이 바이트 크기가 작은 수에서 큰 수로,
덜 정밀한 수에서 더 정말한 수로 자료형이 변환되는 경우에 자동 현 변환이 일어난다.
명시적 형 변환
바이트 크기가 큰 자료형에서 작은 자료형으로 대입하는 경우
예를 들어 1바이트인 byte형은 int형보다 크기가 작기 때문에 자료 손실이 발생할 수 있다.
그렇기 때문에 프로그래머가 변환할 자료를 명시적으로 써 주어야 하며 이를 강제 형 변환이라고 한다.
더 정밀한 자료형에서 덜 정밀한 자료형으로 대입하는 경우
위와 같은 경우 명시적 형 변환이 이루어지는 과정에서 자료 손실이 발생해 출력할 경우 3이 출력된다.
연산 중 형 변환
위와 같이 같은 연산이라도 형 변환이 언제 이루어졌는지에 따라 그 결과 값이 다르게 나타날 수 있다.
'프로그래밍 > JAVA' 카테고리의 다른 글
04-1 조건문 (0) | 2023.02.20 |
---|---|
03-1 기본 연산자 (0) | 2023.02.20 |
02-4 상수와 리터럴 (0) | 2023.02.19 |
02-3 변수가 저장되는 공간의 특성, 자료형 (0) | 2023.02.19 |
02-2 변수란 무엇일까? (1) | 2023.02.19 |