[JAVA] 3. 기본형 데이터타입의 저장 가능 범위

2014. 12. 19. 17:34프로그래밍/JAVA

    목차

기본형 데이터타입의 저장 가능 범위 

 

 종류

 데이터형

크기(byte / bit)

표현 범위 

논리형

 boolean

1 / 8

true 또는 false

문자형

 char

2 / 16

'\u0000' ~ 'uFFFF' (16비트 유니코드 문자 데이터)

 정수형

 byte

1 / 8

-128 ~ 127

 short

2 / 16

-32768 ~ 32767

 int

4 / 32

-2147483648 ~ 2147483647

 long

8 / 64

-9223372036854775808 ~ 9223372036854775807

실수형 

 float

4 / 32

1.4E-45 ~ 3.4028235E38

 double

8 / 64

4.9E-324 ~ 1.7976931348623157E308

 

 

boolean

 - 저장 가능한 범위 true/ false
- Java 가 데이터를 다루는 최소 범위가 1 Byte 이기 때문에 낭비적이긴 하지만 1 Byte 사용

 


 

 

◇ char

- Java의경우 Unicode 를 사용 동양의 글자의 경우 2 Byte 필요하기때문에 char 의경우 2 Byte 이용
- Java 에서 유일하게 제공되는 unsinged 형태 (음수 가존재 하지 않음 )

 

* 2 Byte = 16진수 0x00 = 0000 0000 0000 0000
맨앞 1 Bit를 가지고 음수나 양수 를 나타냄 하지만 char 형은
unsinged 형식이기 때문에
맨 앞 비트를 음수 양수 형식 으로 사용하지 않음


char 형이 1111 1111 1111 1111 의 Bit를 가지고 있을때 10진수의 값 65535
short 형이
1111 1111 1111 1111 의 Bit를 가지고 있을때 10진수의 값 -1

- char a = 'A'; b = 'B'; 일때 if (a > b) 가 가능한이유
* char 형은 유니코드 정수형태로 저장 char a = 'A' 일시 a변수에는 'A' 의 정수 값인 65가 들어감

 


 

 

※ JVM 의 피연산자 스택이 피연산자를 4 Byte 단위로 저장 하기 때문에 

    int 보다 작은 자료형의 값을 계산시 int 형으로 형변환 되서 연산이 수행됨

 

※ 정수형 데이터를 사용하게 되면 JVM에서 기본적으로 int형 데이터타입의 데이터로 인식을 해주게 된다.

 

- 표현할 수 있는 범위를 나타낸 것이다. 바이트 크기보다 1씩 작은 이유는 숫자를 표현하는 데이터타입에서는

맨앞의 비트를 부호를 나타내는 비트로 사용하기에 바이트 크기에서 1작은 승수로 범위를 표현된다.

범위에서 -1를 한 이유는 중간에 0이 있기 때문이다.

 

- int형 데이터타입의 범위를 넘어서는 long 데이터타입의 정수를 사용하고자 하는 경우에는 정수 데이터 맨뒤쪽에

접미사 'l' 이나 'L'을 붙여줘야한다. 소문자 l 은 숫자 1과 혼돈할 우려가 있기 때문에 대문자 L을 붙여 사용하도록 하자.


byte

 

◇ short

 

int

 

long

 


 

 

※ 실수형 데이터타입에서는 double형 데이터타입이 기본 데이터타입 이다.

 

- 기본형 데이터타입이 double형 이기 때문에 float형 데이터타입의 실수형 데이터를 사용하고자 하는 경우에도

long형과 마찬가지로 실수데이터 맨뒤쪽에 접미사 'f'나 'F'를 붙여 줘야한다.

 

- float형 데이터타입보다 double형 데이터타입이 두배정도 더 정밀한 데이터를 표현할 수 있다.

 

◇ float

- float fl = 3.14F; or float fl = 3.14f;

- f를 붙여 주지 않으면 double형 데이터로 인식하기에 꼭 붙여 줘야한다.

 

double

- temp = 1e-3;

-  * e 뒤에 붙은 숫자가 10의 몇승을 나타냄
지금 1e-3의 경우 10의 -3승 으로서 0.001 과 같음
1e3 == 1000 (10의 3승 )과 같음

 

'프로그래밍 > JAVA' 카테고리의 다른 글

[JAVA] 6. 형변환(Casting)  (0) 2014.12.24
[JAVA] 5. 데이터타입이란?  (0) 2014.12.23
[JAVA] 4. 정수의 오버플로우  (0) 2014.12.23
[JAVA] 2. 변수의 선언  (0) 2014.12.18
[JAVA] 1. 변수란 무엇인가?  (0) 2014.12.16