| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 스트림
- 데이터베이스강의
- lamda
- 백엔드 개발 코딩 강의
- 스타트업
- CodeLatte
- java
- 안드로이드
- thread
- 코딩입문
- 백엔드 강의
- 코드라떼
- 코딩독학방법
- CodeCommit
- Stream
- C포인터
- 정규식
- 오류제어
- 데이터베이스기초
- RFC
- 백엔드 코딩
- java8
- 자바8
- Android
- 자바
- 문돌이
- 개발자
- 람다
- 자료구조강의추천
- 자바자료구조
- Today
- Total
이병록의 개발 블로그
[코드라떼] 자바 프로그래밍 - [심화] 형 변환 원리 본문
1. 형 변환 원리ㅤ
1-1. 정수의 암시적 형 변환

정수의 암시적 형 변환은 byte 패딩을 붙이는 방식으로 형 변환을 합니다.
ㅤ
1-2. 정수의 명시적 형 변환

정수의 명시적 형 변환은 byte 패딩을 제거하는 방식으로 변환하기 때문에 데이터 손실이 발생합니다. 형 변환되는 자료형의 표현 범위를 벗어나는 데이터는 변조가 될 수 있습니다.
ㅤ
1-3. 접미사 L과 암시적 형 변환

기본적으로 접미사 L이 작성되지 않은 리터럴은 4 byte로 스택 메모리에 일시적으로 저장합니다. 그리고 long 형 변수에 저장될 때 byte 패팅을 붙여서 저장됩니다. 그러나 L 접미사가 작성되어 있는 리터럴은 8 byte로 스택 메모리에 일시적으로 저장 후 long 형 변수에 저장될 때 그대로 저장됩니다.
최종적으로 저장된 값은 동일합니다.
ㅤ
1-4. 접미사 F와 암시적 형 변환

기본적으로 접미사 F가 작성되지 않은 리터럴은 배정도(8 byte)로 [스택 메모리에 일시적으로 저장]합니다. 그리고 double 형 변수에 저장됩니다. 그러나 접미사 F가 작성된 리터럴은 단정도(4 byte)로 스택 메모리에 일시적으로 저장되었다가 배정도(8 byte)로 변환한 후 double 형 변수에 저장됩니다.
리터럴을 처음부터 [배정도]로 할 것인지, [단정도]로 할 것인지에 따라 변환되는 데이터의 크기가 다르므로 최종적으로 저장되는 데이터의 정밀도가 달라집니다.
예시로 400x400 해상도 이미지를 만들어 1600x1600으로 늘리는 것과, 처음부터 1600x1600 해상도 이미지를 만드는 것과 화질 차이가 나는 것을 떠올려보면 쉽게 이해될 겁니다.
ㅤ
1-5. 정수에서 실수로 명시적 형 변환

부동소수점은 소수점이 떠다닌다라는 의미를 가지고 있습니다. 이러한 부동소수점에서 정수를 추출하는 방법은 다음과 같습니다.
- 지수부를 10진수로 변경하면 132이다.
- 132 - float bias(127) 를 계산하면 5이므로 이후에 이동시킬 소수점의 횟수는 5입니다.
- 가수부의 맨 앞에 1 bit를 추가합니다.
- 부동소수점을 맨 앞의 비트 뒤로 이동시킨다.
- 부동소수점을 다섯 칸 이동시킵니다.
- 소수점 앞에 있는 비트를 십진수로 변환하면 32입니다.
ㅤ
1-6. 연산시 형 변환
연산시 형 변환과 관련된 예시는 다음과 같습니다.



'자바 프로그래밍 강의' 카테고리의 다른 글
| [코드라떼] 자바 프로그래밍 - [심화] 다차원 배열 (0) | 2026.01.31 |
|---|---|
| [코드라떼] 자바 프로그래밍 - 배열 (0) | 2026.01.31 |
| [코드라떼] 자바 프로그래밍 - 형 변환 (0) | 2026.01.31 |
| [코드라떼] 자바 프로그래밍 - [심화] 리터럴과 메모리의 관계 (0) | 2026.01.31 |
| [코드라떼] 자바 프로그래밍 - 상수 (0) | 2026.01.31 |
