컴퓨터:integer_and_floating_point
[홈레코딩 필독서]"모두의 홈레코딩"구매링크
가성비 있는 녹음실 찾으시나요? 리버사이드 재즈 스튜디오에서 녹음하세요!
[공지]회원 가입 방법
[공지]글 작성 및 수정 방법
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| 컴퓨터:integer_and_floating_point [2024/02/26] – 정승환 | 컴퓨터:integer_and_floating_point [2026/02/22] (현재) – 정승환 | ||
|---|---|---|---|
| 줄 10: | 줄 10: | ||
| 8 자리로 숫자표현을 할 때 | 8 자리로 숫자표현을 할 때 | ||
| - | * 12345678 과 같이 표현하면 표현의 범위는 1~99999999 까지이다.((이와 같은 형식을 10진수 8비트 정수 형식이라고 합니다. 실제의 컴퓨터의 정수형 표현은 사실 이진수입니다. 이해하기 쉽게 10진수로 이야기 했습니다. | + | * 12345678 과 같이 표현하면 표현의 범위는 1~99999999 까지이다.((이와 같은 형식을 10진수 8비트 정수 형식이라고 합니다. 실제의 컴퓨터의 정수형 표현은 사실 이진수입니다. 이해하기 쉽게 10진수로 이야기 했습니다.)) |
| * 1.2345678 과 같이 소수점 하나를 꼭 넣어서 표현하면 표현의 범위는 0.0000001 부터 9999999.9 까지이다.((이와 같은 형식을 10진수 9(8+1)비트 부동소수 형식이라고 합니다. 8비트의 숫자+ 1비트의 소수점 자리수 표기(0, | * 1.2345678 과 같이 소수점 하나를 꼭 넣어서 표현하면 표현의 범위는 0.0000001 부터 9999999.9 까지이다.((이와 같은 형식을 10진수 9(8+1)비트 부동소수 형식이라고 합니다. 8비트의 숫자+ 1비트의 소수점 자리수 표기(0, | ||
| 위의 두가지 방식 중에 위의 것이 정수의 표현 방식이고 아래와 같은 방식이 부동소수(자리가 정해지지 않은 소수점)의 표현 방식이다. | 위의 두가지 방식 중에 위의 것이 정수의 표현 방식이고 아래와 같은 방식이 부동소수(자리가 정해지지 않은 소수점)의 표현 방식이다. | ||
| 줄 30: | 줄 30: | ||
| =====각 데이터 형식의 표현 범위===== | =====각 데이터 형식의 표현 범위===== | ||
| - | 정수형 | + | **정수형 표현 범위** |
| - | | + | <WRAP tablewidth 100%> |
| - | | + | ^ 비트 |
| - | | + | | 16비트 |
| - | | + | | 24비트 |
| - | | + | | 32비트 |
| - | | + | | 48비트 |
| + | | 56비트 | ||
| + | | 64비트 | ||
| + | </ | ||
| + | |||
| + | **부동소수점 범위 (32비트 IEEE 754)** | ||
| + | <WRAP tablewidth 100%> | ||
| + | ^ 설명 | ||
| + | | 최소 양수 정규화값 | 1.0 × 2<sup>-126</sup> | 1.1754944 × 10< | ||
| + | | 최대 양수값 | (2 - 2< | ||
| + | </ | ||
| - | 부동소수형 숫자 표현의 범위\\ | ||
| - | * 32bit 부동소수형의 가장 작은 숫자 = < | ||
| - | * 32bit 부동소수형의 가장 큰 숫자 = <m>(2 - 2^{-23}) * 2^{127}</ | ||
| =====부동소수점 연산의 정밀성 손실===== | =====부동소수점 연산의 정밀성 손실===== | ||
| 줄 47: | 줄 54: | ||
| 예를 들어, 우리가 다음과 같은 두 개의 부동소수를 더한다고 가정해봅시다: | 예를 들어, 우리가 다음과 같은 두 개의 부동소수를 더한다고 가정해봅시다: | ||
| - | * <m>0.1 * 10^{-20}</m> | + | * 0.1 x 10<sup>-20</sup> |
| - | * <m>0.2 * 10^{-20}</m> | + | * 0.2 x 10<sup>-20</sup> |
| - | 이 두 부동소수를 더하면 우리는 | + | 이 두 부동소수를 더하면 우리는 0.3 x 10<sup>-20</sup>이 나와야 한다고 예상할 수 있습니다. 그러나 컴퓨터에서는 부동소수점을 표현할 때 소수점 이하의 정밀도에 한계가 있기 때문에 정확한 결과를 얻기 어렵습니다. |
| 실제로 컴퓨터에서 이러한 덧셈을 수행하면 다음과 같은 결과가 나올 수 있습니다: | 실제로 컴퓨터에서 이러한 덧셈을 수행하면 다음과 같은 결과가 나올 수 있습니다: | ||
| - | * <m>0.1 * 10^{-20}</m>를 표현할 때 발생하는 정밀성 손실로 인해 실제로는 | + | * 0.1 x 10<sup>-20</sup>를 표현할 때 발생하는 정밀성 손실로 인해 실제로는 0.10000000000000000000005 |
| - | * <m>0.2 * 10^{-20}</m>도 마찬가지로 정밀성 손실로 인해 | + | * 0.2 x 10<sup>-20</sup>도 마찬가지로 정밀성 손실로 인해 0.20000000000000000000004 |
| - | 따라서 이 두 수를 더하면 | + | 따라서 이 두 수를 더하면 0.30000000000000000000009 |
| 이러한 예시를 통해, 부동소수 연산에서의 정밀성 손실이 어떻게 발생하는지 좀 더 구체적으로 이해할 수 있습니다. | 이러한 예시를 통해, 부동소수 연산에서의 정밀성 손실이 어떻게 발생하는지 좀 더 구체적으로 이해할 수 있습니다. | ||
| - | 이러한 오차는 금융 분야에서의 시간, 금액 계산이나, | + | 이러한 오차는 금융 분야에서의 시간, 금액 계산이나, |
[공지]회원 가입 방법
[공지]글 작성 및 수정 방법
컴퓨터/integer_and_floating_point.1708926078.txt.gz · 마지막으로 수정됨: 저자 정승환
