고정 소수점 & 부동 소수점


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

1. 고정 소수점(Fixed Point)

소수점이 찍힐 위치를 미리 정해놓고 소수를 표현하는 방식이다. (정수 + 소수)

-3.141592 => 부호(-), 정수부(3), 소수부(0.141592)로 이루어진다.

  • 장점 : 실수를 정수부+소수부로 표현하여 단순하다.
  • 표현의 범위가 적어서 활용하기 힘들다. (부호 1bit, 정수 15bit, 소수 16bit)

2. 부동 소수점(Floating Point)

지수에 값에 따라 소수점이 움직이는 방식을 활용한 실수 표현 방법이다. 즉 소수점의 위치가 고정되어 있지 않다.

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

  • 가수 : 실수의 실제값 표현
  • 지수 : 크기를 표현함. 가수에 소수점이 위치하는 곳을 나타낸다. (부호 1bit, 지수 8bit, 가수 23bit)

예시) -142.5625를 부동 소수점으로 표현한다면

  1. 부호부를 1로 지정한다 (음수 1, 양수 0)
  2. 표현하고자 하는 수의 절댓값을 이진법으로 나타낸다 (142.5625 = 10001110.1001)
  3. 소수점을 이동시켜 소수점 왼쪽에 1이 하나만 남도록 한다. (10001110.1001 = 1.00011101001 * 2^7)
  4. 소수점을 제거하고 가수부의 비트 수의 맞춰 부족한 만큼을 0으로 채우면 가수부가 된다. (10001110100100000000000)
  5. 지수는 7이므로 bias(127)를 더한 134를 더한 134를 이진법으로 표현하면 지수부가 된다.
  6. 결론적으로 -142.0625를 32비트 부동소수점으로 표현하면, 1 10000110 10001110100100000000000 이 된다.

5의 bias란 부호부를 가지지 않는 지수부가 음수가 되지 않도록 보정해주는 값을 말한다.

  • 장점 : 표현할 수 있는 수의 범위가 넓어진다.
  • 단점 : 오차가 발생할 수 있다.