닌자고양이
이진수 소수점 이하를 십진수로 변환하는 방법 본문
이진수 -> 십진수 방법은 다음과 같다.
...
10000 -> 1*(2^4) = 1*16 = 16
1000 -> 1*(2^3) = 1*8 = 8
100 -> 1*(2^2) = 1*4 = 4
10 -> 1*(2^1) = 1*2 = 2
1 -> 1/(2^0) = 1/1 = 1
0.1 -> 1/(2^1) = 1/2 = 0.5
0.01 -> 1/(2^2) = 1/4 = 0.25
0.001 -> 1/(2^3) = 1/8 = 0.125
0.0001 -> 1/(2^4) = 1/16 = 0.0625
...
소수점 이하만 보면,
이진수 1 = 십진수 1 이고,
이진수 0.1 + 0.1 = 1 이므로 이진수 0.1 의 십진수 값은 1/2 = 0.5,
이진수 0.01 + 0.01 = 0.1 이므로 이진수 0.01 의 십진수 값은 1/2/2 = 0.25,
...
한 자릿수 내려갈 때 마다 2로 나눈 값이 되는 원리다.
이를 이용해 복잡한 이진 소수를 십진수로 변환해 보자.
0.101 를 십진수로 변환하면
= 1/(2^1) + 0 + 1/(2^3)
= 0.5 + 0 + 0.125
= 0.625
0.111 를 십진수로 변환하면
= 1/(2^1) + 1/(2^2) + 1/(2^3)
= 0.5 + 0.25 + 0.125
= 0.875
Comments