정규화된 부동소수점의 표현

원래벌레·2022년 4월 26일
0

💎 정규화

  • 이 부동소수점의 표현을 한가지로 통일을 하기 위한 방법이다.

  • +0.1bbb....b2E+0.1bbb....b * 2^E0.1bbb....b2E-0.1bbb....b * 2^E

💎 부동소수점 표현의 예

1) 0.1101250.1101 *2^5 = 0 101 101 로 나타낼 수 있다. 여기서 1101이 아니라 101인 이유는 정규화 표현에서 0.1은 고정이기 때문에 가수 표현의 맨 처음은 1이 고정이다. 따라서 해당 비트를 줄이고 표현 할 수 있는 비트수를 하나 늘리게 해준다.

💎 바이어스된 지수

  • 사용목적 : 0에 대한 표현에서 모든 비트들이 0이 되게 하여, 0-검사가 용이하게 하기 위함 => 0-검사가 정수에서와 같은 방법으로 가능해짐

  • 그래서 이 바이어스된 지수는 지수를 표현하는 E에 128을 더해준다. 0부터 양수에 경우에는 가장 큰 비트수를 하나 올려주면 되고, 음수의 경우에는 2진수로 표현한 128에 2의 보수로 표현한 - 값을 더해주면 된다.

  • ex) 바이어스 값=128 일때, N=-13.625에 대한 부동소수점 표현
    먼저 -이기 때문에 부호비트는 1로 한다. 그리고 13.625 = 1101.101 이다.
    그렇기 때문에 가수 부분은 0.101101 이 된다. ( 첫번째 비트는 생략)
    지수 부분은 0.1101101 이 1101.101이 되기 위해서는 242^4 을 곱해야 하므로 지수 부분의 값은 4가 돼야 한다. 따라서 바이어스된 지수 표현 이므로 128+4가 되서 10000100 이 된다.
    [1][10000100] [101101000000000000000000]

💎 부동소수점 수의 표현 범위

  • 양수 0.521280.5*2^{-128} ~ (12242127)(1-2^{-24}*2^{127})
    양수 최소 표현 0 00000000 000000000000
    양수 최대 표현 0 11111111 111111111111

  • 음수 (12242127)-(1-2^{-24}*2^{127}) ~ 0.52128-0.5*2^{-128}
    음수 최소 표현 1 11111111 11111111111
    음수 최대 표현 1 00000000 00000000000

💍 제외되는 범위

  • (12242127)-(1-2^{-24}*2^{127}) 보다 작은 음수를 음수 오버플로우라고 한다.

  • 0.52128-0.5*2^{-128} 보다 큰 음수를 음수 언더플로우라고 한다.

  • 0

  • 0.521280.5*2^{-128} 보다 작은 양수를 양수 언더플로우라고 한다.

  • (12242127)(1-2^{-24}*2^{127}) 보다 큰 양수를 양수 오버플로우라고 한다.

💍 0과 언더플로우 그리고 오버플로우의 치환

  • 일단 0과 언더플로우는 모든 비트가 0인 0에 가까운 값으로 치환한다.

  • 오버플로우가 난 값은 부호비트는 유지하고, 나머지 비트들을 1로 치환하여 해당 값을 무한대로 정의하고 이로 치환한다.

profile
학습한 내용을 담은 블로그 입니다.

0개의 댓글