십진수에 작은 값을 표현하는 소수 표현이 있듯이,
이진수에도 소수 표현이 존재합니다.
이 글에선 어떻게 이진수로 소수를 나타내는지 알아봅시다.
십진수를 이진수로 만들 때 정수 부분은 나눗셈을 통해 구했듯이,
소수 부분은 곱셈을 통해 구합니다.
이진수 소수 읽기
이진수 소수를 쓰기 전에 이진수 소수를 읽는 법부터 알아야겠죠?
기존에 알고 계시던 이진수 읽는 법과 다르지 않습니다!
각 자릿수 간엔 두 배 차이가 난다는 사실을 그대로 가지고 가면 됩니다.
- 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
'Computer Science' 카테고리의 다른 글
[CS] 덧셈밖에 못하는 컴퓨터가 어떻게 2의 보수를 이용해 뺄셈을 할까요? (0) | 2022.07.08 |
---|---|
[CS] 비트와 바이트의 차이, 그리고 KB/MB/GB/TB (0) | 2022.07.07 |
[CS] 이진법과 십진법 사이 변환하기, 컴퓨터와 이진법 (0) | 2022.07.07 |