Bit-level of System

스근한국밥한그릇·2024년 11월 22일
0

SYSTEM

목록 보기
1/15

1. integer

1-1 signed

sign : 1 - neg(-), 0 - pos(+) just 1 bit
부호비트 제외한 모든 비트는 크기를 표시

signed 특징

음수표현 : 2의 보수법 채택 (~x + 1)
범위 : -2 ^ (x-1) ~ 2 ^ (x-1) - 1

  • char, int, long 등 사이즈 할당 가능 해당 bit 크기만큼만 표현이 가능하기에 overflow 가능성
  • Tmin = 1000000...0, = Tmax + 1

2. Floating

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인 상태를 의미

Rounding

  • 종류

    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보다 큰경우) : 무조건 올림

profile
항상 든든하게 코딩 한그릇🧑‍💻🍚

0개의 댓글