십진수의 소수점은 2를 곱하고 그 계산된 수의 정수 부분을 취하면 이진수의 소수점이 됩니다.
0.625 * 2 = 1.25
여기서 정수 부분 1이 이진수의 소수점 첫 째 자리가 됩니다. 그 이후로 1을 버리면 0.25가 되고 다시 2를 곱하고 같은 방식으로 계산을 진행하면 됩니다.
0.25 * 2 = 0.5
정수부분 0이 이진수의 소수점 둘 째 자리 정수부분이 0이므로 그대로 2를 또 곱합니다.
0.5 * 2 = 1.0
정수부분 1이 이진수의 소수점 셋 째 자리가 되고 이제 계산은 마무리 됩니다. 소수부분이 0이므로 2를 곱해도 0이 되며 즉, 2를 계속 곱하면서 1.0이 나오면 계산이 종료됩니다. 따라서 구하려는 답은
0.625( 10) = 0.101
0.05에 2를 곱해봅시다. Carry가 발생하면 1을 발생하지 않으면 0을 적어주세요.
0.05 * 2 = 0.10 .... 0
0.1 * 2 = 0.2 ......... 0
0.2 * 2 = 0.4 ......... 0
0.4 * 2 = 0.8 ......... 0
0.8 * 2 = 1.6 ......... 1
0.6 * 2 = 1.2 ......... 1
0.2 * 2 = 0.4 ......... 0
0.4 * 2 = 0.8 ......... 0
0.8 * 2 = 1.6 ......... 1
0.6 * 2 = 1.2 ......... 1
0.2 * 2 = 0.4 ......... 0
0.05는 뒤쪽에서 0011이 계속 반복되는것을 확인할 수 있습니다. 굳이 2진수로 표현하자면
0.0000110011001100110011이 됩니다.
'Semiconductor > ETC' 카테고리의 다른 글
Linux 명령어 (0) | 2020.12.19 |
---|---|
LFSR( Linear Feedback Shift Register) (0) | 2020.10.26 |
Double Dabble (0) | 2020.10.25 |
Carry lookahead Full Adder (0) | 2020.10.22 |