[Computer Architecture]고정소수점과 부동소수점

Legday_Dev·2024년 2월 24일

CS

목록 보기
4/13
post-thumbnail

컴퓨터는 0 과 1로 모든 수를 표현한다. 단, 실수를 표현할 때는 고정 소수점 방식과 부동 소수점 방식 2가지로 나뉜다.

고정 소수점(Fixed Point)

소수점이 찍힐 위치를 미리 정해놓고 소수를 표현하는 방식. 우리가 흔히 아는 소숫점을 표현하는 방식이다.
-3.141593 와 같이 부호(-) , 정수부(3), 실수부(0.141593) 3가지의 요소가 필요하다.

  • 32bit 기준으로 고정 소수점을 표현하면 아래와 같다
  • 장점 : 실수를 정수부와 소수부로 표현하여 단순
  • 단점 : 표현의 범위가 작기 때문에 활용하기 힘들다.

부동 소수점(Floating Point)

실수를 가수부 와 지수부로 표현한다.

  • 가수 : 실수의 실제값

  • 지수 : 크기를 표현함. 가수의 어디쯤에 소수점이 있는지 나타낸다.

  • 부동 소수점은 지수의 값에 따라 소수점이 움직이는 방식이다. 즉, 소수점의 위치가 고정되어 있지 않다.

  • 현재 사용하는 부동 소수점 방식은 대부분 IEEE 754 표준을 따른다.
  • 32bit 의 float 형 실수를 IEEE 부동 소수점 방식으로 표현하면 아래 그림과 같다.
  • 이와 같이 고정소수점에 비해 23비트의 가수부가 지수로 가기때문에 훨씬 넓은 실수를 표현할 수 있다.
  • 장점 : 표현할 수 있는 수의 범위가 넓다(현재 대부분 시스템에서 활용 중)
  • 단점 : 오차가 발생할 수 있다.(Java 의 경우 BigDecimal 을 사용하면 해결)

출처 1
출처 2

profile
백엔드개발자

0개의 댓글