본문 바로가기

컴퓨터기초

부동소수점

부동소수점

  • 부동소수점은 소수점의 위치를 이동시킬 수 있는 표현방법

부동소수점의 형태

+/-    M   x   B^E
부호  가수   밑수 지수
  • 지수 필드의 비트수가 늘어나면 표현 가능한 수의 범위가 늘어난다
  • 가수 필드의 비트수가 늘어나면 정밀도가 증가한다

32bit(단일-정밀도, single-precision)

  • 부호: 1bit
  • 가수: 23bit
  • 지수: 8bit

image


11.75 표현하기

1) 십진수인 11.75를 2진수로 변환을한다
2) 2진수로 변환을 하면 1010.11(2)가 된다
3) 1010.11(2)를 정규화를 하면 1.01011(2) x 2^3이 된다
4) 부호: +
5) 지수: 3
6) 가수: 01011
7) 여기서 지수는 양의 지수와 음의 지수가 구분될 수 있도록 32bit에서는 127을 64bit 1023을 더한다
8) 따라서 지수는 3 + 127 = 128 + 2로 표현할 수 있다
9) 만약 -11.75였다면 부호비트를 1로 변경하여 표기해주면 된다
image

0.1875 표현하기

1) 십진수 숫자인 0.1875를 2진수로 변환한다
2) 2진수로 표현하면 0.0011(2)이 된다
3) 0.0011(2)를 정규화를 하면 1.1(2) x 2^-3이 된다
4) 부호: +
5) 지수: -3
6) 가수: 1
7) 여기서 지수는 양의 지수와 음의 지수를 구분할 수 있도록 32bit에서는 127을 더한다
8) 따라서 지수는 -3 + 127 = 127 - 3 이므로 127은 128을 제외한 모든 칸이 1인 경우이고 거기서 3을 빼야하므로 2와 1을 0으로 만들어주면 된다
9) 0 1 1 1 1 1 0 0 이 된다는 것을 알 수 있다
image



64bit(복수-정밀도, double-precision)

  • 부호: 1bit
  • 지수: 11bit
  • 가수: 52bit
  • 32bit에 비해 가수부분 표현범위가 큰것을 보면 32bit보다 더 정밀한 표현이 가능하다는 것을 알 수 있다

image


13.6875 표현하기

1) 십진수 숫자인 13.6875를 2진수로 변환한다
2) 2진수로 표현하면 1101.1011(2)이 된다
3) 1101.1011(2)를 정규화를 하면 1.1011011(2) x 2^3이 된다
4) 부호: +
5) 지수: 3
6) 가수: 1011011
7) 여기서 64bit 체제이므로 지수 3에 1023을 더한다
8) 따라서 지수는 1023 + 3 = 1024 + 2 → 1024와 2를 제외한 모든 위치를 0으로 표기로 표현할 수 있다
9) 만약 음수였다면 부호비트를 1로 바꾸어
image