정수형 - byte, short, int, long

정수형에는 모두 4개의 자료형이 있으며, 각 자료형이 저장할 수 있는 값의 범위가 서로 다르다.

byte(자료형) < short < int < long
1(메모리)   2   4   8

기본 자료형(default data type)은 int이다.

 

정수형의 표현 형식과 범위

타입(type) 저장 가능한 범위 크기
bit            byte
byte -128~127(-2⁷~2⁷-1) 8 1
short -32,768~32,767(-2¹⁵~2¹⁵-1) 16 2
int -2,147,483,648~2,147,483,647(-2³¹~2³¹-1. 약 +-20억) 32 4
long -9,223,372,036,854,775,808~9,223,372,036,854,775,807(-2⁶³~2⁶³-1) 64 8

정수형은 연산을 할 때 4byte보다 작은 자료형의 값을 계산할 때는 4byte로 변환하기 때문에 int형으로 저장하는 경우가 많다.

주의할 점은 부호가 있는 정수의 경우 최솟값에서 -1을 하면 최댓값이 되고 최댓값에서 1을 더하면 최솟값이 된다.

 

실수형 - float, double

타입 저장 가능한 값의 범위(양수) 정밀도 크기
float 1.4X10⁻⁴⁵~3.4X10³⁸ 7자리 32 4
double 4.9X10⁻³¹⁴~1.8X10³⁰⁸ 15자리 64 8

이것은 양의 범위만을 적이며 -를 붙이면 음의 범위가 된다. 

 float의 경우 0에서 경우 0에서 +-1.4X10⁻⁴⁵까지 double의 경우 0에서 +-4.9X10⁻³¹⁴까지 값을 표현할 수 없다.

 

실수형에서 최댓값을 넘어선다면 값이 무한대가 되고, 최솟값 이하가 되면 0이 된다.

 

실수의 저장 형식은 세 부분으로 나뉘어서 저장되는데, 부호(Sign), 지수(Exponent), 가수(Mantissa), 모두 세 부분으로 이루어져 있다.

float : 1 + 8 + 23 = 32 (4 byte)
S(1) E (8) M (23)
double : 1 + 11 + 52 = 64 (8 byte)
S(1) E (8) M (23)

이와 같은 표현 형식은 IEEE 754(Institute of Electrical and Electronics Engineers)라는 표준을 따른 것이다.

기호 의미 설명
S 부호(Sign bit) 0이면 양수, 1이면 음수
E 지수(Exponent) 부호가 있는 정수, 지수의 범위는
-127~128(float),-1023~1024(double)
M 가수(Mantissa) 실제값을 저장하는 부분,
10진수로 7자리(float), 15자리 (double)의 정밀도로 저장 가능

부호 (Sign bit)

S는 부호 비트를 의미하며 1 bit이다.

 

지수(Exponent)

E는 지수를 저장하는 부분으로 float의 경우, 8bit의 저장 공강을 갖는다.

-127과 128은 숫자 아님(NaN Not a Number)과 양의 무한대(POSITIVE_INFINITY), 음의 무한대(NEGATIVE-INFINITY)와 같이 특별한 값의 표현을 위해 있으므로 실재 사용한 지수의 범위는 -126~127이다.

 

가수(Mantissa)

'M'은 실제 값인 가수를 저장하는 부분이다.

 

부동소수점에는 오차가 존재한다. 무한소수 같은 경우도 물론이고 계산할 때도 오차가 조금씩 발생한다.

'JAVA 02강 변수(Variable) > 기본형' 카테고리의 다른 글

기본형(primitive type)  (0) 2021.07.11

+ Recent posts