본문 바로가기
Backend/Java

Java7. 데이터 타입 기본형의 종류와 범위.

by 샴페인맛있다 2024. 5. 7.

기본형 데이터 타입 8가지 

논리형(boolean), 문자형(char), 정수형(byte, short, int, long), 실수형(float, double)

정수형에는 int, 실수형에는 double 값이 기본.


※ 참고.  bit와 byte

① bit

 1 bit 가 저장할 수 있는 정보 = 0 또는 1 2개

 2 bit 가 저장할 수 있는 정보 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³¹ =  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 타입으로 표현 할 수 없는 범위

 

 

 

   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을 사용해야함.