[CS] 이진수로 소수를 나타내는 법
Computer Science

[CS] 이진수로 소수를 나타내는 법

Woon2World :: Programming & Art Life

 

십진수에 작은 값을 표현하는 소수 표현이 있듯이,

이진수에도 소수 표현이 존재합니다.

이 글에선 어떻게 이진수로 소수를 나타내는지 알아봅시다.

 

 

십진수를 이진수로 만들 때 정수 부분은 나눗셈을 통해 구했듯이,
소수 부분은 곱셈을 통해 구합니다.



 

 

이진수 소수 읽기

 

이진수 소수를 쓰기 전에 이진수 소수를 읽는 법부터 알아야겠죠?

기존에 알고 계시던 이진수 읽는 법과 다르지 않습니다!

각 자릿수 간엔 두 배 차이가 난다는 사실을 그대로 가지고 가면 됩니다.

  • 1010.0101(2) = 23* 1 + 22 * 0 + 21 * 1 + 20 * 0 + 2-1 * 0 + 2-2 * 1 + 2-3 * 0 + 2-4 * 1
    = 23 * 1 + 21 * 1 + 2-2 * 1 + 2-4 * 1 = 8 + 2 + 0.25 + 0.0625 = 10.3125
  • 1100.0011(2) = 23 * 1 + 22 * 1 + 21 * 0 + 20 * 0 + 2-1 * 0 + 2-2 * 0 + 2-3 * 1 + 2-4 * 1
    = 23 * 1 + 22 * 1 + 2-3 * 1 + 2-4 * 1 = 8 + 4 + 0.125 + 0.0625 = 12.1875

숫자 아래에 자릿수에 해당하는 수를 표시하면 훨씬 쉽게 할 수 있습니다.

  • 1       0       1       0       .       0       1       0       1
    8       4       2       1       .     0.5   0.25 0.125 0.0625
    8
     + 2 + 0.25 + 0.0625 = 10.3125
  • 1       1       0       0       .       0       0       1       1
    8       4       2       1       .     0.5   0.25 0.125 0.0625
    8
    + 4 + 0.125 + 0.0625 = 12.1875

 

십진수 소수를 이진수 소수로 변환하기

 

십진수 소수를 이진수 소수로 나타낼 땐,

2를 계속 곱해서 그 정수부분을 나란히 써주면 됩니다.

 

0.375 * 2 = 0.75

0.75 * 2 = 1.5

0.5 * 2 = 1

0.375 = 0.011(2)

 

0.65625 * 2 = 1.3125

0.3125 * 2 = 0.625

0.625 * 2 = 1.25

0.25 * 2 = 0.5

0.5 * 2 = 1

0.65625 = 0.10101(2)

 

쉽게 구했지만 사실은 아래 과정을 거친 것과 같습니다.

0.65625 = 2-1 * 2 * 0.65625 = 2-1 * 1.3125 = 2-1 * 1 + 2-1 * 0.3125 = 2-1 * 1 + 2-2 * 2 * 0.3125

= 2-1 * 1 + 2-2 * 0.625 = 2-1 * 1 + 2-3 * 2 * 0.625 = 2-1 * 1 + 2-3 * 1.25 = 2-1 * 1 + 2-3 * 1 + 2-3 * 0.25

= 2-1 * 1 + 2-3 * 1 + 2-4 * 2 * 0.25 = 2-1 * 1 + 2-3 * 1 + 2-4 * 0.5 = 2-1 * 1 + 2-3 * 1 + 2-5 * 2 * 0.5

= 2-1 * 1 + 2-3 * 1 + 2-5 * 1