728x90
부동 소수점
부호(1비트) | 지수(8비트) | 가수(23비트) |
부호: 0이면 양수 1이면 음수를 의미
지수: 가수에 곱해지는 2의 제곱 수를 나타낸다.
가수: 실수의 유효 숫자를 표현한다.
표현방법
-123.25를 2진수로 표현할 경우 1111011.01이다.
다음으로 정규화 과정이 필요하다. 소수점을 맨 앞자리 1 뒤로 이동시키고 지수를 조정한다. 1111011.01 -> 1.11101101 * 2^6 소수점이 6자리 이동했으므로 2^6이 된다.
지수부에 6을 넣기 전에 바이어스 값을 추가해야 한다.
바이어스(bias)
지수가 음수가 될 수도 있고 양수가 될 수도 있다. 하지만 컴퓨터는 음수를 표현하기보다는 양수로만 처리하는 것을 선호한다.
지수 값에 바이어스 값(127)을 더하면 음수의 경우 1~126, 양수의 경우 128~254 범위를 나타낸다.
예시의 경우 127+6 = 133(10000101)
가수부 처리
소수점 이하 부분을 가수부에 넣는다. 맨 앞 1은 항상 1이기 때문에 메모리에는 1을 제외한 소수부만 저장된다.
1.11101101 -> 11101101
1 | 10000101 | 11101101 |
부동소수점 사용 시 주의점
메모리라는 유한한 값을 사용하여 숫자를 저장한다. 하지만 실수는 무한한 값을 가지기 때문에(0.33333...) 근사값을 저장한다. 출력 시 미세한 오차가 발생한다.
'자료구조' 카테고리의 다른 글
2진수 정수 표현 방식 (0) | 2024.03.13 |
---|---|
10진수 표현 방식(pack, unpacked) (0) | 2024.03.06 |