2.3.2 기본 자료형의 메모리 크기와 저장할 수 있는 값의 범위

jh·2022년 1월 4일
0

기본 자료형에는
참 true 과 거짓 false 을 저장하는 boolean,
정수를 저장하는 byte, short, int, long,
실수를 저장하는 float과 double
문자(정수)를 저장하는 char 자료형이 있다.

<각 자료형이 차지하는 메모리의 크기와 저장할 수 있는 값의 범위 >

우선 정수를 저장할 수 있는 자료형 4개를 살펴보면, 자료형의 크기가 클수록 저장하는 값의 범위도 넓어지는 것을 알 수 있다. 표현할 수 있는 값이 많은 만큼 차지하는 메모리의 크기도 증가하는 방식으므로 당연한 결과라고 할 수 있다.

1. 정수

그렇다면 각 정수 자료형의 값 범위는 어떻게 결정될까? 우선 n개의 비트 bit로 표현 할 수 있는 정수는 "2의 n제곱"개다.
예를 들어 2비트로 표현할 수 있는 정수는 2의 제곱(=4)개(00,01,10,11)다. 그렇다면 1byte(=8bit)크기인 바이트 자료형으로 표현할 수 있는 정수는 2의 8제곱(=256)개일 것이다.
정수는 음수,0,양수를 포함하므로 표현할 수 있는 전체 개수 중 반은 음수, 나머지 반은 0과 양수에 할당한다. 그 결과 바이트 자료형의 값 범위는 -2의 7제곱 ~ 2의 7제곱 - 1이다. 이와 같은 원리로 short, int, long 자료형도 값의 범위를 쉽게 계산할 수 있다.

2. 실수

이제 실수를 살펴보자. float와 double 자료형은 각각 4byte와 8byte로 int, long과 같지만, 저장할 수 있는 값의 범위는 훨씬 넓다. 이는 실수의 저장 방식이 부동 소수점, 즉 가수X밑^지수 의 형태로 저장하기 때문이다.
실수 자료형의 구성을 살펴보면
float 자료형에는 부호, 가수, 지수에 각각 1bit, 23bit, 8bit, double 자료형에는 각각 1bit, 52bit, 11bit를 할당한다.

실수 자료형의 구성

구분부호 비트가수 비트지수 비트
flaot(32bit)1238
double(64bit)15211

부동 소수점 표현 방식에서 지수는 표현할 수 있는 값의 범위에 영향을 미치는 요소, 가수는 값의 정밀도에 영향을 미치는 요소다. 일반적으로 float의 정밀도는 소수점 7자리, double의 정밀도는 소수점 15자리 정도다.

실습


결과 : f1, d1만 정상 출력 f2, d2는 오차 발생

profile
코딩 공부 중...

0개의 댓글