컴퓨터:integer_and_floating_point
[홈레코딩 필독서]"모두의 홈레코딩"구매링크
가성비 있는 녹음실 찾으시나요? 리버사이드 재즈 스튜디오에서 녹음하세요!
[공지]회원 가입 방법
[공지]글 작성 및 수정 방법
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판이전 판다음 판 | 이전 판 | ||
컴퓨터:integer_and_floating_point [2024/02/22] – 제거됨 - 바깥 편집 (Unknown date) 127.0.0.1 | 컴퓨터:integer_and_floating_point [2025/01/01] (현재) – [부동소수점 연산의 정밀성 손실] 정승환 | ||
---|---|---|---|
줄 1: | 줄 1: | ||
+ | ======정수와 부동소수====== | ||
+ | * **정수 : Integer** | ||
+ | * **부동소수 : Floating point** | ||
+ | |||
+ | {{오디오_미신: | ||
+ | |||
+ | |||
+ | 컴퓨터가 숫자를 표현하거나 계산할 때 사용하는 두가지 방식 | ||
+ | |||
+ | 8 자리로 숫자표현을 할 때 | ||
+ | * 12345678 과 같이 표현하면 표현의 범위는 1~99999999 까지이다.((이와 같은 형식을 10진수 8비트 정수 형식이라고 합니다. 실제의 컴퓨터의 정수형 표현은 사실 이진수입니다. 이해하기 쉽게 10진수로 이야기 했습니다.)) | ||
+ | * 1.2345678 과 같이 소수점 하나를 꼭 넣어서 표현하면 표현의 범위는 0.0000001 부터 9999999.9 까지이다.((이와 같은 형식을 10진수 9(8+1)비트 부동소수 형식이라고 합니다. 8비트의 숫자+ 1비트의 소수점 자리수 표기(0, | ||
+ | 위의 두가지 방식 중에 위의 것이 정수의 표현 방식이고 아래와 같은 방식이 부동소수(자리가 정해지지 않은 소수점)의 표현 방식이다. | ||
+ | |||
+ | 따라서, 컴퓨터에서 제한된 자리수를 가지고 숫자를 표현할 때 부동소수 방식을 사용하면 훨씬 더 많은 범위 및 훨씬 해상도 높은 숫자(1.0000001~1.9999999 처럼 1 과 2사이를 엄청나게 세분화하여 표현 가능)를 표현할 수 있다. 다만 계산의 정확성은 정수형 표현이 정확하고 계산의 속도 또한 빠르다.((부동소수의 계산에서는 전체 자릿수를 벗어나면 버려지는 소숫점들이 생길 가능성이 있기 때문이다.)) | ||
+ | |||
+ | =====배정밀도===== | ||
+ | |||
+ | **Double Precision** | ||
+ | |||
+ | 배정밀도(double precision)는 정수와 부동소수점을 모두 다루는 방법 중 하나입니다. | ||
+ | |||
+ | 1. **정수형에서의 배정밀도**: | ||
+ | |||
+ | 2. **부동소수점에서의 배정밀도**: | ||
+ | |||
+ | 정수와 부동소수점에서의 배정밀도는 각각 데이터 형식에 따라 다르지만, | ||
+ | |||
+ | =====각 데이터 형식의 표현 범위===== | ||
+ | |||
+ | 정수형 숫자 표현의 범위\\ | ||
+ | * 16bit 정수형의 총 표현 가능 단계 = 2< | ||
+ | * 24bit 정수형의 총 표현 가능 단계 = 2< | ||
+ | * 32bit 정수형의 총 표현 가능 단계 = 2< | ||
+ | * 48bit 정수형 배정밀도= 2< | ||
+ | * 56bit 정수형 = 2< | ||
+ | * 64bit 정수형 = 2< | ||
+ | |||
+ | 부동소수형 숫자 표현의 범위\\ | ||
+ | * 32bit 부동소수형의 가장 작은 숫자 = 1.0 x 2< | ||
+ | * 32bit 부동소수형의 가장 큰 숫자 = (2 - 2< | ||
+ | |||
+ | =====부동소수점 연산의 정밀성 손실===== | ||
+ | 부동소수 연산의 정밀성 손실 문제를 구체적인 예시로 설명해보겠습니다. | ||
+ | |||
+ | 예를 들어, 우리가 다음과 같은 두 개의 부동소수를 더한다고 가정해봅시다: | ||
+ | |||
+ | * 0.1 x 10< | ||
+ | * 0.2 x 10< | ||
+ | |||
+ | 이 두 부동소수를 더하면 우리는 0.3 x 10< | ||
+ | |||
+ | 실제로 컴퓨터에서 이러한 덧셈을 수행하면 다음과 같은 결과가 나올 수 있습니다: | ||
+ | |||
+ | * 0.1 x 10< | ||
+ | * 0.2 x 10< | ||
+ | |||
+ | 따라서 이 두 수를 더하면 0.30000000000000000000009 x 10< | ||
+ | |||
+ | 이러한 예시를 통해, 부동소수 연산에서의 정밀성 손실이 어떻게 발생하는지 좀 더 구체적으로 이해할 수 있습니다. | ||
+ | |||
+ | 이러한 오차는 금융 분야에서의 시간, 금액 계산이나, |
[공지]회원 가입 방법
[공지]글 작성 및 수정 방법