부동소수점, IEEE 754

2025. 1. 16. 14:49·Computer

부동소수점

컴퓨터에서는 실수를 '부동소수점'(Floating Point Number) 형식으로 저장한다. '부동'(Floating)이라는 표현은 배가 물에 떠서 이리저리 움직이듯이 소수점의 위치를 하나로 고정시키지 않고 움직인다는 뜻이다. 예컨대 $352.45$라는 10진수 실수를 $3.5245 \times 10^2$의 형식으로 나타나는 것을 '정규화'(Normalization)한다고 말하며, 이와 같이 정규화하여 나타낸 실수 표현을 부동소수점 형식이라 말한다.

    실수를 부동소수점 형식으로 표현하면 매우 크거나 작은 숫자를 비교적 간단하게 표현할 수 있고, 다소 한정된 비트만을 가지고 정밀하게 숫자를 표현할 수 있다는 장점이 있기 때문에 컴퓨터는 부동소수점 형식으로 실수를 저장한다.

    부동소수점 형식은 실수를 부호(sign), 가수(mantissa), 지수(exponent)라는 세 가지 부분으로 나누어 저장한다. 가수는 소수점 뒷자리 수를 의미한다. 예컨대 $11010.101$이라는 2진수 실수를 정규화하면 $1.1010101 \times 2^4$이고, 양수이므로 부호는 $+$, 가수는 $1010101$, 지수는 $4$이다. 

 

IEEE 754 

    이러한 부동소수를 저장하는 방식도 특정한 목적이나 분야에 따라 다양하다. 그 중에서도 전기전자기술자협회(IEEE: Institute of Electrical and Electronics Engineers)에서 지정한 표준 방식을 'IEEE 754' 표준이라고 한다. 이 방법은 크게 32 비트의 단정도 형식(Single Precision Format)과 64 비트의 배정도 형식(Double Precision Format) 두 가지가 존재한다. 앞서 부동소수점 형식으로 실수를 표현했을 때 부호, 가수, 지수로 나눴듯이 IEEE 754 또한 실수를 부호부, 지수부, 가수부로 나누어 저장한다.

    부호부는 양수이면 0, 음수이면 1이 저장된다. 지수부는 양수로만 표현하기 위해 단정도 형식에서는 원래의 수에 127(0111 1111$_{(2)}$)을 더한 127 편향지수(127 Biased Exponent)를, 배정도 형식에서는 1023(011 1111 1111$_{(2)}$)을 더한 1023 편향지수(1023 Biased Exponent)를 사용한다. 가수부에는 왼쪽부터 가수를 저장하고 남은 비트에는 모두 0으로 채운다. 

위쪽이 단정도, 아래쪽이 배정도이다. (https://velog.io/@shin8037/JS%EB%AA%A8%EB%8D%98-%EB%94%A5-%EB%8B%A4%EC%9D%B4%EB%B8%8C-%EB%8B%A8%EC%A0%95%EB%B0%80%EB%8F%84-%EB%B0%B0%EC%A0%95%EB%B0%80%EB%8F%84)

    예컨대 $11010.101$이라는 2진수를 IEEE 754 표준 방식에 따라 표현해보자. 우선 정규화를 해주면 $$1.1010101 \times 2^4$$이다. 양수이므로 부호부는 $0$, 지수부는 $4$에 $127$을 더한 $131$로 2진수로 나타내면 $1000 0011$이다. 마지막으로 가수부는 $1010101$이므로 단정도 형식으로 나타내면 $$1 1000 0011 10101010000000000000000$$이다. 

저작자표시 (새창열림)
'Computer' 카테고리의 다른 글
  • 명령어
  • 컴퓨터에서 문자 표현
  • 2진수를 8진수, 16진수로 변환하기
  • 컴퓨터
Erdos
Erdos
수학과, 물리학과 학부생들이 운영하는 팀블로그입니다.
  • Erdos
    SAMICO
    Erdos
  • 전체
    오늘
    어제
    • 분류 전체보기 (262)
      • Mathematics (174)
        • Real analysis (21)
        • Linear Algebra (64)
        • Number Thoery (11)
        • Calculus (55)
        • Probability (6)
        • Set Theory (13)
        • Writing (2)
        • Problems (1)
        • Abstract Algebra (1)
      • Physics (69)
        • 일반물리 (2)
        • 상대성이론과 양자역학 입문 (35)
        • 열물리 (13)
        • 수리물리 (13)
        • 고전역학 (6)
      • Computer (7)
      • 독서 (12)
        • 과학 (5)
        • 문학 (2)
        • 자기계발서 (4)
  • 공지사항

    • 참고서적
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
Erdos
부동소수점, IEEE 754
상단으로

티스토리툴바