sign : 1 - neg(-), 0 - pos(+) just 1 bit
부호비트 제외한 모든 비트는 크기를 표시
음수표현 : 2의 보수법 채택 (~x + 1)
범위 : -2 ^ (x-1) ~ 2 ^ (x-1) - 1
- char, int, long 등 사이즈 할당 가능 해당 bit 크기만큼만 표현이 가능하기에 overflow 가능성
- Tmin = 1000000...0, = Tmax + 1
Sign : 1 - neg, 0- pos 1bit
Exp : single precision - 8bit, double precision - 11bit, 지수부
Frac : 가수부
v = (-1) ^ s M 2 ^ E
bias = 2 ^(k-1) - 1, k = Exp bit
Normalized values
exp != 000..0 and exp != 111..1
E = Exp - Bias
M = {1 ~ 2-e(엡실론)}, Normalized은 exp가 000..0이 아니기 때문에 1이상 + 가수부 111.11 = 1 + 0.999999999..9가 최대값 -> != 2
Denormalized values
E = 1 - Bias
M = {0~1-e{엡실론)}, exp = 000..0인 상태를 의미
종류
Towards zero : 0 쪽으로 rounding -1.6 -> -1...
Round down : -inf 쪽으로 rounding
Round up : + inf 쪽으로..
Nearest Even(default) : 짝수쪽으로.. = Round to even
Round-To-Even
특징 : 오차가 더 적음
방법 : halfway 이상일 때 표현하고자 하는 자릿수가 짝수가 되도록 반올림 여부 결정
example of Round-To-Even
7.89(49999) -> 7.89 : halfway 보다 작음
7.89(50001) -> 7.90 : halfway보다 크고, 홀수임
7.89(500000) -> 7.90 : halfway이고, 홀수임
7.88(5000) -> 7.80 : halfway이지만, 짝수임
- half way 보다 크다면 무조건 올림, halfway라면 표현하고자 하는 자릿수의 수가 홀수인 경우에만 올림 -> binary인경우에도 동일하게 적용됨
binary halfway = 100,
100인경우 : 홀수일때 올림, 짝수인경우 유지
1000..1(100보다 큰경우) : 무조건 올림