Skip to content

Latest commit

 

History

History
69 lines (58 loc) · 2.3 KB

2.4부동소수점.md

File metadata and controls

69 lines (58 loc) · 2.3 KB

2.4부동소수점

2.4 부동소수점

비율 이진수

  • 컴퓨터는 이진수를 사용한다 그러나 흔히 우리가 사용하는 십진수를 이진 표기로 변환할 때 표시 못하는 영역이 발생한다
    • 이렇게 표현 못하는 수는 근사값으로 표시한다
    • 이진표시를 늘려 근삿값으로 만든다

부동소수점 표시

  • V = (-1)^s* M * 2^E
    • S
      • 부호비트
    • M
      • 비율이진수(비율비트)(frac)
    • E(Exp)
      • 2의 제곱수 표시
  • 부동소수를 워드로 표시할 따는 일반적으로 2가지가 있다
    • 단일정밀도
    • 이중정밀도
  • 인코딩 케이스(exp 값에 따라 3가지 분류)
    • 정규화 값
      • exp 비트 패턴이 모두 0 또는 1이 아님
      • 지수필드는 부호형 정수를 bias의 형태로 나타내야함
        • E = e - bias
      • M = 1+ f
    • 비정규화 값
      • 지수 필드가 모두 0길 때 나타낸 수는 비정규화 형태이다
      • E = 1 - bias
      • m = f (암시적 선두 x)
      • 정규화 값은 M이 무조건 1 이상이라 0을 표시 못함
        • 0을 표시하기 위해 만들어졌다
      • 점증적 언더플로우 특성을 가짐
        • 숫자들이 0.0 근처에서 같은 간격을 갖는걸 의미
    • 특수 값
      • 지수 필드가 모두 1인 경우이다
      • 비율 필드가 모두 0일 때 부호 비트에 따라 음과 양의 무한대 값을 가짐
      • 비율 필드가 0이 아니면 NaN임

근사법(rounding 기법)

  • 부동 소수점 표시 방법은 제한된 범위와 정밀도를 갖기 때문에 실제 연산엔 근사법이 필요

  • 종류

    • 짝수 근사법
      • 가장 가까운 곳을 찾으려함
      • 중간값은 짝수로 가운다
    • 양방향 근사
    • 하양 근사
    • 상향 근사
  • 짝수 근사의 활용

    • 소수점
    • 이진수 비율 숫자

부동 소수점 연산

  • IEEE 표준에수 부동소수점 값 x와y는 실수로 표현
  • Round(X*Y)
    • 실수 연산의 정확한 값 근사
  • 장점은 특정 하드웨어 소프트웨어 구현에 의존성이 없음
  • 부동소수점 연산은 결합법칙, 분배법칙이 성립하지 않음

C에서 부동소수점

  • C에서는 float double을 제공한다
  • 짝수 근사 사용
  • float이나 double에서 int 변환 값은 0방향 근사
  • int에서 float으로의 값은 오버플로우 할 수 없지만 근사 가능