[자바 무료 강의] 정수와 실수 - 코드라떼
Lesson List button
코스자바로 배우는 프로그래밍
hamburger button
강의정수와 실수최종수정일 2021-09-06
아이콘약 3분

자바 언어에서 정수와 실수를 어떻게 다루는지 배웁니다. 자바는 변수에 자료형을 명시해야 하는 언어이기 때문에 정수와 실수에 대해서 알아야 하며, 실수의 한계성에 대해서 알아야지 이후에 코딩을 할 때 '어? 왜 이렇게 되지?' 하는 경우를 사전에 방지할 수 있습니다.

추가 노트

목차


  1. 정수와 실수의 차이
  2. 실수를 부동 소수점 규칙으로 저장하는 이유
  3. float와 double에 저장된 근사값




정수와 실수의 차이


정수와 실수의 데이터 구조

32bit의 공간에 정수를 저장할 경우 맨 앞의 1 bit는 부호 비트로 사용하며, 나머지 비트를 정수를 이진수로 변환하여 저장합니다. 정수를 표현하는 비트 구조에서 부호 비트가 0이면 양수, 1이면 음수로 인지합니다. 다만 음수로 저장할 때는 2의 보수를 구하여 저장합니다.

그러나 실수를 저장할 경우 1 bit는 부호 비트로 사용하고, 8 bit는 지수부, 나머지 23 bit는 가수부로 부동소수점 규칙에 의해 계산되어 저장됩니다.

결론적으로 정수와 실수는 저장된 데이터 구조가 다르므로 컴퓨터의 세계에서는 정수와 실수는 동일하지 않습니다.




실수를 부동 소수점 규칙으로 저장하는 이유


image

실수를 표현하는 방법은 고정 소수점 방식과 부동 소수점 방식이 있습니다. 그런데 한정된 자원을 가진 컴퓨터의 세계에서 무수한 실수를 최대한 표현하기 위해서 부동 소수점 방식을 택했습니다. 고정 소수점 방식은 부동 소수점 방식과 다르게 정확한 값을 표현할 수 있으나 큰 수를 표현하려면 그만큼 많은 bit를 사용하여 표현해야 합니다.




float와 double에 저장된 근사값


image

float 자료형 변수와 double 자료형 변수의 차이는 사용할 수 있는 메모리 공간의 차이이며, 실수를 저장할 때 더 많은 bit를 사용할수록 저장하려고 하던 값에 더 근사한 값을 저장할 수 있습니다. 궁금하다면 부동소수점 방식으로 저장하는 법을 참조하세요.

도전자 질문
작성된 질문이 없습니다
이용약관|개인정보취급방침
알유티씨클래스|대표, 개인정보보호책임자 : 이병록
이메일 : cs@codelatte.io
사업자등록번호 : 824-06-01921
통신판매업신고 : 2021-성남분당C-0740
주소 : 경기도 성남시 분당구 대왕판교로645번길 12, 9층 24호
파일
파일파일
Root
파일

강의 내용에 있는 32.12345678을 각 자료형에 저장 후 출력하는 예제입니다.

Output
root$
Lesson List button
코스자바로 배우는 프로그래밍
hamburger button
강의정수와 실수최종수정일 2021-09-06
아이콘약 3분

자바 언어에서 정수와 실수를 어떻게 다루는지 배웁니다. 자바는 변수에 자료형을 명시해야 하는 언어이기 때문에 정수와 실수에 대해서 알아야 하며, 실수의 한계성에 대해서 알아야지 이후에 코딩을 할 때 '어? 왜 이렇게 되지?' 하는 경우를 사전에 방지할 수 있습니다.

추가 노트

목차


  1. 정수와 실수의 차이
  2. 실수를 부동 소수점 규칙으로 저장하는 이유
  3. float와 double에 저장된 근사값




정수와 실수의 차이


정수와 실수의 데이터 구조

32bit의 공간에 정수를 저장할 경우 맨 앞의 1 bit는 부호 비트로 사용하며, 나머지 비트를 정수를 이진수로 변환하여 저장합니다. 정수를 표현하는 비트 구조에서 부호 비트가 0이면 양수, 1이면 음수로 인지합니다. 다만 음수로 저장할 때는 2의 보수를 구하여 저장합니다.

그러나 실수를 저장할 경우 1 bit는 부호 비트로 사용하고, 8 bit는 지수부, 나머지 23 bit는 가수부로 부동소수점 규칙에 의해 계산되어 저장됩니다.

결론적으로 정수와 실수는 저장된 데이터 구조가 다르므로 컴퓨터의 세계에서는 정수와 실수는 동일하지 않습니다.




실수를 부동 소수점 규칙으로 저장하는 이유


image

실수를 표현하는 방법은 고정 소수점 방식과 부동 소수점 방식이 있습니다. 그런데 한정된 자원을 가진 컴퓨터의 세계에서 무수한 실수를 최대한 표현하기 위해서 부동 소수점 방식을 택했습니다. 고정 소수점 방식은 부동 소수점 방식과 다르게 정확한 값을 표현할 수 있으나 큰 수를 표현하려면 그만큼 많은 bit를 사용하여 표현해야 합니다.




float와 double에 저장된 근사값


image

float 자료형 변수와 double 자료형 변수의 차이는 사용할 수 있는 메모리 공간의 차이이며, 실수를 저장할 때 더 많은 bit를 사용할수록 저장하려고 하던 값에 더 근사한 값을 저장할 수 있습니다. 궁금하다면 부동소수점 방식으로 저장하는 법을 참조하세요.

도전자 질문
작성된 질문이 없습니다
이용약관|개인정보취급방침
알유티씨클래스|대표, 개인정보보호책임자 : 이병록
이메일 : cs@codelatte.io|운영시간 09:00 - 18:00(평일)
사업자등록번호 : 824-06-01921|통신판매업신고 : 2021-성남분당C-0740
주소 : 경기도 성남시 분당구 대왕판교로645번길 12, 9층 24호(경기창조혁신센터)
파일
파일파일
Root
파일

강의 내용에 있는 32.12345678을 각 자료형에 저장 후 출력하는 예제입니다.

Output
root$