CS/컴퓨터 구조

2장 : 컴퓨터 산술/논리 - (4) 부동소수점

infobox503 2024. 11. 20. 09:33

<요약>

  • 소수 표현
    • 종류
      • 고정 소수점
      • 부동 소수점
  • 부동 소수점
    • 구조
      • 부호
      • 지수 필드
      • 가수 필드
    • 지수 필드 적용 개념
      • 바이어스
        • 바이어스 127
        • 바이어스 128
    • 가수 필드 적용 개념
      • 히든 필드
    • IEEE 754 표준
      • 종류
        • 단일-정밀도
        • 복수-정밀도
      • IEEE 754에서는 1.0101방식으로 정규화
    • 최소값, 최대값
    • 범위 초과(오버플로우)
      • 종류
        • 음수 언더, 오버 플로우
        • 양수 언더, 오버 플로우

  • 소수 표현 종류
    • 고정 소수점
      • 정수, 소수 필드로 나눔
      • 해당 필드를 조합해서 정수, 소수를 나타냄
    • 부동 소수점
      • 소수, 지수로 값을 나눔
      • 소수로 값을 표현한 다음에 지수로 범위를 맞춤
      • 예시
        • 답 : 125
        • 소수 : 1.25
        • 지수 : 2 = (10^2)
        • 1.25 * 100 = 125
  • 부동 소수점 형태

 

  • 부호 : +, -
  • 기수 : 진수 ( 2진수 = 2기수)
    • 각 진수에 맞게 자릿수를 올림
  • 가수 : 소수점 이하 숫자를 만듦
  • 지수 : 소수점 이상 숫자를 만듦

1. n진 부동소수점

  • 10진 부동소수점
    • 예시
      • 2.74 * 10^14
        • 274,000,~~~
      • 2.74 * 10^-12
  • 2진 부동소수점
    • 예시
      • 0.11101 * 2^2
        • 11.101
    • 종류
      • 단일-정밀도 부동소수점
        • 32비트 크기
        • float
      • 복수-정밀도 부동소수점
        • 64비트 크기
        • double
    • 단일-정밀도 표현

  • 특징
    • 지수 필드 비트 증가 : 표현 가능 숫자 범위 증가
    • 가수 필드 비트 수 증가 : 정밀도 증가(소수 표현 정밀도 증가)

2. 부동소수점

  • 정규화
    • 정수를 1자리로 이동시키는 것
    • 즉, 가수 필드의 적힌 값은 1.0101xxx로 해석하면 된다
      • 예시
        • S(부호) = 0
        • E(지수) = 101
        • M(가수) = 1101
        • 1101 = 1.101
        • ⇒ 1.101 * (2^5)
    • 가수 필드의 첫번째 비트는 hidden bit(항상 1의 값을 지니는 비트)
      • hidden bit는 생략함(항상 1이므로)
      • ⇒ M = 1101 → 101

3. 바이어스된 지수

  • 의미
    • 지수 필드에 바이어스 값을 더함
    • 실제 지수 필드의 값은 바이어스 값을 뺀 값으로 읽음
  • 예시
    • 바이어스 128
    • 지수 4
    • 지수 필드 = 00000100(4) + 10000000(128) = 10000100
    • 실제 값 = 4
  • 종류
    • 바이어스 127
      • 주어진 값에 +127
    • 바이어스 128
      • 주어진 값에 +128
  • 사용 방안
    • 0을 표현하기가 편하다.
      • 실제 0에 근접한 값은 가수 필드가 많이 사용된다
        • 0.00000000010101000100
      • 지수의 음수 표현 + 지수가 0에 가까우면 0을 판별하기가 쉽다
      • 따라서, 바이어스를 사용함으로써, 지수가 000000~에 가까우면 지수는 최대 음수 지수에 가까워지면서 0에 가까워진다.
      • 따라서, 0에 가까운 지수를 통해 0을 판별하기 쉽다.

3.IEEE 754 표준 부동소수점

  • 의미
    • 부동소수점 표현의 표준 정함
  • 종류
    • 단일 정밀도 형식 = 32비트
    • 복수 정밀도 형식 = 64비트
  • 바이어스
    • 바이어스 127을 사용함
  • 구조

4. 부동 소수점의 최소, 최대

  • 가정
    • IEEE 754 단일 정밀도
  • 지수 필드 최소, 최대
    • 최소
      • -127
    • 최대
      • 128
  • 가수 필드 최소, 최대
    • 최소
      • 0.5
        • 히든 필드가 1이기 때문에, 가수 필드가 전부 0이더라도 0.1이됨
    • 최대
      • 1 - 2^(-24)
        • 0.11111111~이 최대 값임
        • 따라서, 1 - 0.00…1을 계산하면 0.1111111~
      • QnA) 지수 필드는 23비트인데 왜 24개인 걸로 표현하나?
        • 히든 필드를 생략하므로 1비트 더 표현가능
        • 따라서, 비트는 23이지만 24개 문자 표현 가능
  • 부동 소수점 최소, 최대
    • 최소
      • 2^(-127) * 0.5
        • 지수 최소 * 가수 최소
    • 최대
      • 2^128 * (1-2^(-24))
        • 지수 최대 * 가수 최대
  • 오버플로우
    • 종류
      • 음수 언더, 오버 플로우
      • 양수 언더, 오버 플로우