부동 소수점은 컴퓨터에서 실수를 표현하는 방식 중 하나다.
정수만으로 표현할 수 없는 소수점이 있는 수들을 다룰 수 있도록 설계된 방식을 말한다.


📌 개요

컴퓨터는 이진수 체계를 사용하므로 실수도 이진 소수로 표현해야한다.

하지만 실수는 무한히 많은 수가 존재해서 모든 실수를 정확하게 표현할 수 없다.

따라서 일정한 근사치로 표현하게 되는데, 이때 사용하는 대표적인 방식이 바로 부동소수점 방식이다.

 

📌 구조

IEEE 754 표준에 따라 부동소수점 수는 다음과 같은 세 부분으로 구성된다.

일반적인 구조( 32비트 단정도 )

부호(S) 지수(E) 가수(M)
1비트 8비트 23비트
  • 부호(S) : 0이면 양수, 1이면 음수
  • 지수(E) : 2의 몇 제곱인지를 나타낸다
  • 가수(M) : 실제 유효숫자( 정규화된 소수 부분 )

 

📌 정규화 표현

 

부동소수점 수는 일반적으로 다음과 같은 형식으로 표현된다.

  • Bias( 지수 편향 ) : 표현 가능한 음수 지수를 양수로 바꾸기 위해 사용된다.
    • 32비트 단정도 : Bias = 127
    • 64비트 배정도 : Bias = 1023

 

📌 예시

 

실수 10.375를 IEEE 754 32비트 부동소수점으로 변환해 보자.

  1. 부호 비트(S)를 구한다.
    • 10.375는 양수 -> 부호 비트 = 0
  2. 정수부와 소수부를 이진수로 바꾼다.
    • 10 = 1010 ( 2진수 )
    • 0.375 =
      • 0.375 * 2 = 0.75 -> 정수부 0
      • 0.75 * 2 = 1.5 -> 정수부 1
      • 0.5 * 2 = 1.0 -> 정수부 1
        • 따라서 0.375 = 0.011
    • ▶️ 전체 이진 표현 : 1010.011
  3. 정규화
    • 1010.011 -> 1.010011 * 2^3 형태로 변환 ( 소수점 뒤에만 남기기 )
  4. 지수 구하기
    • 지수 = 3 ( 위에서 2^3 에서 3인 것을 확인 )
    • Bias = 127 ( IEEE 754 단정도 기준 )
    • E = 3 + 127 = 130
    • 130 = 10000010 ( 8비트 )
  5. 가수 구하기
    • 정규화된 수의 소수 부분 : 010011
    • 23비트로 채움: 01001100000000000000000
  6. 최종 32비트 구성
부호(S) 지수(E) 가수(M)
0 10000010 01001100000000000000000

 

최종 결과 (2진수) : 0 10000010 01001100000000000000000

16진수로 변환 : 0x41260000

 

'CS' 카테고리의 다른 글

[CS] Bias ( 부동소수점 보정값 )  (0) 2025.04.15
[CS] 힙 단편화  (0) 2025.04.09
[CS] 스택과 힙  (0) 2025.04.09
[CS] 메모리 보호 기법 ( ASLR )  (0) 2025.03.11
[cs] 문자열 상수  (0) 2025.02.23

+ Recent posts