CS(Computer Science)/Computer Science

고정 소수점, 부동 소수점

환성 2023. 1. 5. 11:39
728x90

컴퓨터에서 실수 표현하는 방법에는 고정 소수점, 부동 소수점 두가지 방식이 존재한다.

 

 

고정 소수점(Fixed Point)

소수점이 찍힐 위치를 미리 정해놓고 소수를 표현하는 방식(정수 + 소수)
Ex.) -5.6888198 = -(부호) , 5(정수부), 소수부(6.888198) 3가지로 나뉨

Ex.) 7.625라는 실수 -> 2진수로 변환하면 111.101이 된다. 이것을 그대로 저장

고정 소수점 방식으로 표현하면 111.101 그대로가 되고 나머지 부분은 0으로 채운다.

고정 소수점 방식

장점 

  • 실수를 정수부와 소수부로 표현해 가독성이 좋다.
  • 높은 정밀도가 필요 없는 소규모 시스템에서는 간혹 쓰인다.

 

단점 

  • 표현의 범위가 너무 적어서 활용하기 힘들다(정수부는 15bit, 소수부는 16bit)

 

 

부동 소수점(Floating Point)

실수를 부호부 + 가수부 + 지수부로 표현한다
- 부호(Sign) : 숫자의 부호를 나타냄, 0이면 음수, 1이면 음수, 1비트
- 가수(Mantissa) : 실수의 실제값 표현, 23비트
- 지수(Exponent) : 크기를 표현함, 소수점을 나타내는 곳, 8비트

지수의 값에 따라 소수점이 움직이는 방식을 활용한 실수 표현 방법이다.

Ex.) -314.625를 부동소수점으로 표현할 때

부호부는 음수이므로 1이 된다.

 

가수부는 숫자의 절대값을 2진수로 표현  -> 314.625는 2진수로 100111010.101 (2) 가 된다.

이 2진수의 소수점을 왼쪽으로 이동해서 소수점 왼쪽에 1만 남도록 한다 -> 1.00111010.101 (2) -> 1.001111010 x 2^8

소수점의 오른쪽 부분은 00111010101을 가수부 23비트의 앞에서부터 채워주고 남는 자리는 0으로 채운다.

즉, 가수부는 00111010101000000000000가 된다.

 

지수부는 지수가 일단 8이므로 bias인 127을 더해서 135가 된다.

135를 2진수로 변환한 10000111을 8비트 지수부에 채운다.

즉, 지수부는 10000111이 된다.

 

따라서 -314.625를 32비트 부동소수점 방식으로 표현하면 1 10000111 00111010101000000000000가 된다.

부동 소수점 방식

 

장점

  • 표현할 수 있는 수의 범위가 넓다

 

단점 

  • 오차가 발생할 수 있다.
  • 예시로 C에서 0.1을 1000번 더한 합계는 99.999가 나오는 것과 같다.(실제 값은 100이 나와야함)
  • 이처럼 근사치를 표현할 뿐 정확한 표현이 아니라는 점이다.

'CS(Computer Science) > Computer Science' 카테고리의 다른 글

패리티 비트 & 해밍 코드  (0) 2023.01.14
캐시 메모리  (0) 2023.01.05
중앙처리장치 작동 원리  (0) 2023.01.04
컴퓨터의 구성  (0) 2023.01.04