정수형 - 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

논리형 - boolean

boolean power = true;

boolean checkes = False; //에러 대소문자가 구분됨 true 또는 false만 가능

boolean은 true와 false 중 하나를 저장할 수 있으며 기본값(default)은 false이다.

논리 구현에 주로 사용된다.

 

문자형 - char

문자형 char역시 한 가지 자료형밖에 없다.

char ch = 'A'; //문자 'A'를 char타입의 변수 ch에 저장

위의 문장은 변수에 '문자'가 저장되는 것 같지만 실재로는 문자의 유니코드 65가 저장되는 것이다.

'A' = 65

'a' = 97

'0' = 48

 

배열의 자료형과 기본값

자료형 기본값
boolean false
char '\u0000'
byte, short, int 0
long 0L
float 0.0f
double 0.0d 또는 0.0
참조형변수 null

 

 

 

인코딩과 디코딩(encoding & decoding)

인코딩은 'A'를 유니코드 65로 변환해서 저장하는 것을 말하고 65를 다시 'A'로 변환하는 것을 디코딩이라고 한다.

암호화를 인코딩, 해석을 디코딩이라고 보면 된다. 만약 웹브라우저의 인코딩 설정이 웹페이지의 인코딩과 다른 경우 글자가 알아볼 수 없게 깨져서 나온다.

https://www.convertstring.com/ko/EncodeDecode/Base64Decode

 

Base64로 디코딩 - 온라인 Base64로 디코더

당신의 Base64로 여기에 텍스트를 디코딩 복사 파일로 디코딩 Base64로 다운로드 :

www.convertstring.com

 

아스키(ASCII)

ASCII는 'American Standard Code for Information Interchange'의 약어로 정보교환을 위한 미국의 표준 코드란 뜻이다.

아스키코드는 255가지이므로 한글을 표현하기에는 부족해서 한글을 표시하기 위해서는 확장 아스키(Extended ASCII)를 사용한다 한글 윈도에서 작성된 문서는 기본적으로 'CP949(확장 완성형)'로 인코딩 되어 저장된다.

+ Recent posts