달력

7

« 2025/7 »

  • 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
2020. 8. 13. 15:39

고정소숫점과 부동소숫점 Python & C2020. 8. 13. 15:39

정소숫점과 부동소숫점이란?

 

고정소숫점이란 말 그대로 소수점의 위치가 고정되어있는 방식을 말하고.
부동소숫점이란 소숫점의 위치가 상황에 맞게 변하는 것이다.

컴퓨터에서는 고정 소수점방식은 소수점이 맨 오른쪽에 '고정'되어있다고 가정한다. 즉 정수를 말한다.
12.5를 컴퓨터의 고정소수점 표현방식으로 한다면 그냥 12가 된다.

반면에 부동 소숫점(floating point)은 소수점의 위치를 상황에 맞게 변환할 수 있는 방법으로
컴퓨터가 실수연산을 할 때 사용된다.

고정소숫점이 숫자를 그냥 저장한다면.
부동 소숫점은 이와는 달리 지수부와 가수부로 나누어 저장된다.

보통 지수부와 가수부의 구별을 위해 e(exponent)또는 E를 쓴다.
12.5라면 1.25e1 로 나타낼 수 있다.
앞의 1.25는 가수부, 즉 유효숫자를 말합니다. 뒤의 1은 10의 1제곱을 나타낸다.
즉. 1.25*10^1 라는 의미이다.

부동소수점 표현은 고정소수점 방식과 달리 매우 큰 수를 표현할 수 있다는 장점이 있지만. 해당 데이터형의 유효숫자를 벗어난 범위에 대해서는 오차가 발생하게된다.
예로 c언어의 정수 데이터형인(고정소수점)long int 형과 실수 데이터형인 float형은 크기가 둘다 32bit로 동일 하지만,
int형이 10억자리짜지 표현할수 있는데 비해서. float형은 10조이상까지 표현이 가능하다.

그리고, 2194736588같은 수는 long int 형으로 정확히 표현 가능하지만. float형에서는 정확한 표현이 불가능하다.
float형은 유효숫자가 7자리 정도이기 때문이다.

'Python & C' 카테고리의 다른 글

c언어_관계연산자  (0) 2020.08.13
Visual C++소스  (0) 2020.08.13
보수를 이용한 덧셈과 뺄셈  (0) 2020.08.13
디지털 코드  (0) 2020.08.12
수의 표현  (0) 2020.08.12
:
Posted by gonlab