다음의 단계로 처리함.
- 10진수 소수값에 2를 곱함.
- 2를 곱한 결과가 1미만이면 0을 기록.
- 1 초과할 경우, 1을 기록하고 결과값에서는 1을 뺀다.
- 결과값이 1인 경우, 1을 기록하고 변환을 끝냄. 1이 아니면 다시 2번 단계로
결과값이 1로 나오지 않을 경우, 무한히 반복이 될 수 있음. (즉, 유한한 자리수로는 오차를 피할 수 없음)
다음 그림은 $0.35$ (10진수)를 이진수로 바꾸는 과정을 보여준다.
오른쪽의 화살표 부분을 잘 보면 반복이 이루어지고 있음을 알 수 있다. (즉, 이진수로 표시할 경우, 무한소수임)
즉 결과는 다음과 같음.
$$ (0.35)_{10} = (0.01011001100...)_2$$
다른 예로 $0.5$는 다음과 같음.
$$ (0.5)_{10} = (0.1)_2 $$
'Computer > CE' 카테고리의 다른 글
[CE] MapReduce (0) | 2022.12.30 |
---|---|
[CE] Float 표현하기 : IEEE754 (0) | 2022.12.28 |
[CE] Micro Controller Unit (MCU) and Micro-computer (0) | 2022.12.18 |
[CE] Processor and Core (0) | 2022.12.18 |
[CE] Microprocessor (0) | 2022.12.18 |