본문 바로가기

프로그래밍/논리회로

[논리회로] 10진수에서 2진수로 전환하는 방법 (Decimal to Binary Conversion), Repeated Division

[Digital Systems] p59-60

 

https://midoriprogramming.tistory.com/3

 

[논리회로] 2진수에서 10진수로 전환하는 방법 (Binary to Decimal Conversion)

[Digital Systems] p.58 https://midoriprogramming.tistory.com/2 [논리회로] 디지털 수 체계 10진수와 2진수의 이해(Digital Number Systems - Decimal&Binary), 2진수 카운팅 [Digital Systems] p.39-43 ○ Dig..

midoriprogramming.tistory.com

 

지난 시간에 2진수를 10진수로 전환하는 방법에 대해서 알아봤다.

 

이번에는 10진수를 2진수로 전환하는 방법에 대해서 알아보겠다.

 

 

○ Decimal to Binary Conversion (10진수에서 2진수 전환)

 

 

● 1을 포함하는 자리수를 더하는 방법을 반대로 시행 (Reverse process summing the positions that contain a 1)

 

 

앞선 2진수를 10진수로 변환하는 방법에서 사용했던 방법을 반대로 시행하는 방법이다.

 

주어진 10진수 숫자를 2진수의 자리수 숫자의 합의 형태로 표현해준 후

 

각 자리수의 숫자가 있다면 해당 자리에 1, 없다면 0을 표시하는 방법이다.

 

글로 읽는 설명보다는 위의 과정을 직접 보는 것이 이해가 빠를 것이다.

 

예시1)

 

 

 

 

 

● 나누기 반복 (Repeated Division)

 

 

두번째 방법은 2로 나누는 것을 반복하는 방법이다.

 

  1. 주어진 10진수 숫자를 2로 나눈다. (Divide the decimal number by 2)
  2. 나머지가 있다면 1, 나머지가 없다면 0이다.
  3. 몫이 0이 될 때까지 반복한다. 
  4. 첫번째 나머지는 LSB이고, 마지막 나머지는 MSB다.

 

예를 들어 25라는 10진수 숫자를 2진수 숫자로 바꿔준다면

 

25를 2로 나눈 몫 12와 나머지가 생긴다.

 

이때 나머지가 있다면 1, 나머지가 없다면 0으로 따로 표시를 해준다.

 

그리고 위에서 생긴 몫 12를 다시 2로 나눠주고 나머지를 표시한다.

 

몫이 0이 될 때까지 계속해서 반복한다.

 

마지막 나머지부터 첫번째 나머지 순으로 적어주면 2진수 숫자로 변경이 완료된다.

 

이 역시 말로 듣는 설명보다는 위의 예시를 직접 보는 것이 이해가 빠르다.

 

 

 

 

※ Flowchart for Repeated Division

 

 

 

10진수를 2진수로 바꾸는 알고리즘을 플로우 차트로 나타내보았다.

 

몫이 0이 될 때까지 반복하는 알고리즘이다.