일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Direct2D
- VS ERROR
- Win32
- 문법
- 포인터
- 알고리즘
- c#
- Javascript
- tipssoft
- Tips프로그래밍강좌
- 함수
- Tips강좌
- 리뷰
- 이지스퍼블리싱
- Windows
- 연산자
- 티스토리
- Desktop
- 백준
- doit코틀린프로그래밍
- c++
- c
- CS
- 김성엽
- 지식나눔강좌
- 배열
- Visual Studio
- Programming
- 프로그래밍
- Kotlin
- Yesterday
- Today
- Total
목록double (2)
F.R.I.D.A.Y.
실수를 표현하기 위해 C언어에서는 대표적으로 float와 double 자료형이 존재합니다. 이 자료형들이 어떻게 데이터를 가지고 해석하는지 알아봅니다. 실수를 표현하는 방법 우리 일상에는 나이, 날짜, 지폐와 같이 정수로 표현이 가능한 데이터가 존재합니다. 그러나 이것 외에도 키, 몸무게, 환율 등 실수로 표현해야 하는 데이터도 존재합니다. 정수는 이진수의 값을 올리면 된다지만, 0과 1로 표현되는 컴퓨터에서 실수는 단순히 값을 올리는 것으로만은 실수를 표현할 수 없습니다. 그렇다면 우리는 새로운 방법을 시도해볼 수 있습니다. 고정 소수점 특정 비트를 기준으로 한쪽 비트를 실수의 정수 영역을 저장하도록 하고, 반대쪽 비트는 실수의 소수점 영역을 저장하도록 하는 방법입니다. 4바이트, 즉 32비트 공간이 ..
말 그대로 부동 소수점, C/C++에서는 float나 double로 불리는 자료형은 == 연산자로 비교해서는 안됩니다. 그 이유를 알아봅시다. 3.14 == 3.14는 거짓일 수 있습니다. 3.14를 비교하는 코드를 보겠습니다. #include int main(void) { double fval = 3.14; printf("%.10lf %.10f \n", fval, (float)fval); return 0; } 같은 값이 나올까요? 아닙니다, 출력해보면 아래와 같이 오차를 포함하여 출력이 될겁니다. 오차 값은 때에 따라 달라질 수 있습니다. 어째서 이런 일이 벌어질까요? 컴퓨터는 소수를 표현하기 위해 대표적으로 두가지 방법을 사용합니다. 고정소수점 부동소수점 간단히 설명하면 고정소수점방식은 일정 비트는 ..