부동 소수점(Floating Point) 표현

2026. 3. 29. 22:31·IT Dictionary/Software
반응형

1. 부동 소수점Floating Point) 이란?

  • 컴퓨터에서 실수를 표현하기 위해 소수점의 위치를 고정하지 않는 것을 의미함
    • 123.45 라는 숫자를 표현하고 싶을 때, 0.12345 * 10³ , 1.2345 * 10² 와 같이 소수점 위치를 옮기며 지수를 조정
  • 표현할 수 있는 범위가 매우 넓다는 장점을 가짐
  • 2진수로 실수를 표현할 때 무한 소수가 되는 경우에는 근사값을 저장하므로 미세한 오차가 발생할 수 있음

 

2. IEEE 754 표준 구조

  • 대부분의 컴퓨터에서 사용하는 부동소수점의 표준
  • float 타입을 기준으로 메모리는 다음과 같이 실수를 세 부분으로 나뉘어 저장함
    • 부호(SIgn) 비트 : 0이면 양수, 1이면 음수 (1 bit)
    • 지수(Exponent) 비트 : 소수점의 위치를 결정하며, 숫자의 크기를 나타냄 (8 bit)
    • 가수(Fraction/Mantissa) 비트 : 실제 숫자의 정밀한 값을 저장함 (23 bit)

 

3. 부동 소수점 변환 과정

  1. 9.625라는 실수를 표현하고 싶다고 과정한다.
  2. 정수부와 소수부를 각각 2진수로 변환
    • 정수부 : 9 = 1001₂
    • 소수부는 각각 2를 곱하고 정수 부분을 추출
    • 소수부 : 0.625 * 2 = 1.25, 0.25 * 2 = 0.5, 0.5 * 2 = 1 → 0.101₂
    • 여기서 정수부와 소수부를 합치면 1001.101₂ 라는 결과가 나오게 됨
  3. 정규화 과정을 통해 소수점을 맨 왼쪽 '1' 바로 뒤에 오도록 함
    • 1001.101₂ = 1.001101₂ * 2³ 
    • 부호(SIgn) 비트 : 0₂ (양수)
    • 지수(Exponent) 비트 : 3 + 127(Bias) →10000010₂
      • 여기서 Bias 란 음수 지수를 0 이상의 양수로 변환 시켜 빠른 크기 비교를 위해 지수에 가산되는 임의의 값
      • 해당 변환 과정에서는 8비트(0~254) 의 크기를 가지는 float을 기준으로 하기 때문에 127을 더해줌
      • 지수가 -50 이면 bias값 127을 더하여 77이라는 양수 값을 갖게함. 
    • 가수(Fraction/Mantissa) 비트 : 00110100000000....₂
      • 맨 앞에 1은 항상 존재하므로 생략하고, 23 bit가 될 수 있도록 나머지 bit 들을 0으로 채워줌
  4. 최종 결과는 01000001000110100000000₂

 

4. float과 double의 차이

항목 float (단정밀도) double (배정밀도)
메모리 크기 4 바이트 (32비트) 8 바이트 (64비트)
유효 자릿수 약 7자리 약 15~17자리
C++ 기본값 0.2f (f 접미사 필요) 0.2 (기본 리터럴 타입)
용도 그래픽스, 모바일 게임 (메모리 절약) 일반적인 공학 계산, 금융, 통계

 

반응형

'IT Dictionary > Software' 카테고리의 다른 글

이진 코드 종류 (BCD, 2421, Excess-3, 그레이 코드)  (0) 2026.04.08
V 모델 (SDLC의 종류)  (0) 2026.03.29
리엑트(React)란?  (2) 2023.05.02
브라우저 렌더링 과정, 자바스크립트(JS) 작동 원리  (0) 2023.04.29
자바 컴파일 과정(Java Compile Process)  (0) 2023.04.28
'IT Dictionary/Software' 카테고리의 다른 글
  • 이진 코드 종류 (BCD, 2421, Excess-3, 그레이 코드)
  • V 모델 (SDLC의 종류)
  • 리엑트(React)란?
  • 브라우저 렌더링 과정, 자바스크립트(JS) 작동 원리
MutJangE
MutJangE
즐거운 인생
  • MutJangE
    MutJangE
    MutJangE
  • 전체
    오늘
    어제
    • 분류 전체보기 (127)
      • IT Dictionary (98)
        • Hardware (4)
        • OS (6)
        • Software (17)
        • Data Structure (7)
        • Algorithm (8)
        • Database (10)
        • Network (15)
        • Linux (1)
        • Cloud (1)
        • Tool's Guide (1)
        • 정보보안산업기사 (24)
        • CTF & 보안 (4)
      • 일상 (10)
        • 배포중인 웹 서비스 (0)
        • CERT병 (7)
        • 토익 (0)
      • 프로그래밍 (19)
        • Java (1)
        • C# (6)
        • Unity (7)
        • React (4)
        • React native (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.5
    MutJangE
    부동 소수점(Floating Point) 표현
    상단으로

    티스토리툴바