728x90
정수를 2진수로 변환하는 것은 쉽게 하다가도 갑자기 소수점을 2진수로 변환하라고 하면
당황하는 경우가 있다.
간단히 정리해 보면 다음과 같다.
소수점을 포함하는 10진수를 2진 수로변경 하려면
- 정수 부분을 먼저 2진수로
- 소수점이하 부분을 2진수로
- 위의 1번과 2번 결괏값을 연결
예제 ) 14.83 을 2진수로 변환하면 => 1110.11011..
1. 정수부분을 먼저 2진수로 | 2. 소수점이하 부분을 2진수로 |
|
|
최종 몫과 나머지 부분을 밑에서 위로 화살표 순으로 연결 => 1 1 1 0 |
정수 부분을 위에서 부터 아래 순서대로 연결 => . 1 1 0 1 0 …. |
요약 : 2로 나누고 밑에서 위로 | 요약 : 2로 곱하고 위에서 아래로 |
소수점을 포함하는 2진수를 10진 수로변경 하려면
설명보다는 아래 예제를 통해 이해하는 게 빠르겠지!
예제 ) 2진수 1000101.1011(2) 을 10진수로 변환하는 과정
컴퓨터의 한계 (?) 오류 (?) 발생
위의 과정을 잘 살펴보면 소수점을 2진수로 변환할때 2를 곱하면서 솟수점이하가 0이 나올때까지 하려면
무한히 반복하는 경우가 생긴다. (위의 0.83 같은 경우...)
하지만 컴퓨터는 소숫점을 표현하는 Bit체계 (예를 들어 8bit, 16bit, 32bit....)가 무한하지 않기 때문에
변환 후 역변환을 다시 하면 원래의 값과 일치하지 않는 문제가 발생할 수도 있다.
https://datawith.tistory.com/127
728x90
728x90
'IT잡학사전' 카테고리의 다른 글
컴퓨터 연산(뺄셈) 과정 에서 필요한 2의 보수 이해하기 (0) | 2024.04.08 |
---|
댓글