기본형 데이터 타입 8가지
논리형(boolean), 문자형(char), 정수형(byte, short, int, long), 실수형(float, double)
※ 참고. bit와 byte
① bit
1 bit 가 저장할 수 있는 정보 = 0 또는 1 → 2개
2 bit 가 저장할 수 있는 정보 → 2² → 4개
∴ n bit가 저장할 수 있는 정보 → 2ⁿ → 2ⁿ개
ex) bit의 정보 표현 방식.
② byte
8 bit = 1 byte
byte : 컴퓨터가 정보를 저장할 수 있는 가장 작은 단위
n bit로 표현할 수 있는 부호 없는 정수의 범위 : 0~2ⁿ-1
n bit로 표현할 수 있는 부호 있는 정수의 범위 : -2ⁿ‐¹~2ⁿ‐¹-1
(맨 앞이 부호 비트이기 때문)
*부호 없는 정수와 부호 있는 정수의 값의 개수는 2ⁿ개로 동일
* Java에서
숫자 타입 정수형, 실수형 (byte, short, int, long, float, double)에는
모두 부호가 있음.
문자형 (char) 에는 부호가 없음.
정수형, 문자형 범위 (byte, short, int, long, char)
● byte
1byte = 8bit 부호 있는 정수의 범위 : -2ⁿ‐¹~2ⁿ‐¹-1
0일 때 양수 2⁷ = 128개 0~127
1일 때 음수 2⁷ = 128개 -1~-128
총 256개 = 2⁸ 범위 -128~127
● short
2byte = 16bit 부호 있는 정수의 범위 : -2ⁿ‐¹~2ⁿ‐¹-1
2¹⁵ = 32768
-2¹⁵~2¹⁵-1 = -32768~32767 → 범위
2¹⁶ = 65536개
● char (문자형)
2byte = 16bit 부호 없는 정수의 범위 : 0~2ⁿ-1
2¹⁶ = 65536개
0~2¹⁶-1 = 0~65535 → 범위
* char type은 문자를 저장하기 위한 타입이지만,
컴퓨터는 모든 데이터를 숫자로 저장하기 때문에
문자도 지정된 문자코드로 변환되어 저장됨.
● int *디폴트 타입
4byte = 32bit
2³¹ = 2¹⁰ x 2¹⁰ x 2¹⁰ x 2 = 10⁹ x 2 = 20억
2¹⁰ = 1024 (약 10³)
-2³¹~2³¹-1 = -20억 ~ 20억 → 범위
● long
8byte = 64bit
2⁶³ = 2³ x 2⁶⁰ = 2³ x (2¹⁰)⁶ = 2³ x (10³)⁶ = 8 x 10¹⁸ = 약 800경
1경 = 10¹⁶
-2⁶³~2⁶³-1 = -800경 ~ 800경 → 범위
800경을 넘는 수를 다룰 경우,
실수 타입 또는 BigInteger라는 클래스 사용
실수형 범위 (float, double)
오차가 발생 할 수 있어서 정밀도가 중요
정밀도란 값을 몇 자리 까지 오차 없이 정확하게 표현 할 수 있는지를 의미
● float
1 + 8 + 23 = 32 bit = 4 byte
가수의 자리 수가 정밀도를 결정
float 가수의 자리 수 23 정교화를 통해 + 1 → 24 자리 까지 저장 가능.
10⁷ < 2²⁴ < 10⁸ 따라서 float의 정밀도는 7, double은 정밀도가 2배.
● double *디폴트 타입
1 + 11 + 52 = 64 bit = 8 byte
가수의 자릿 수가 float의 약 2배기 때문에 정밀도도 float의 약 2배인 15자리
정밀도가 중요한 경우에는 float보다 double을 사용해야함.
'Backend > Java' 카테고리의 다른 글
Java 9. 연산자 피연산자, 연산자의 종류와 우선순위 (0) | 2024.05.07 |
---|---|
Java 8. 화면 출력 system.out.print(), println(), printf() (0) | 2024.05.07 |
Java 6. 변수, 상수, 리터럴, 데이터 타입 (0) | 2024.05.07 |
Java 5. 주석, 백슬래시, 세미콜론 (0) | 2024.05.06 |
Java 4. 이클립스의 기능과 사용방법 (0) | 2024.05.06 |