Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬(Python)으로 10진수를 2진수로 변환하는 방법 완벽 정리

이 글에서는 파이썬을 사용해 10진수를 2진수로 변환하는 방법에 대해 알아보겠습니다.

문제 정의

문제: 하나의 10진수가 주어졌을 때, 이를 이에 대응하는 2진수로 변환해야 합니다.

예를 들어, 10진수 56이 주어지면 결과는 111000이 되어야 합니다.

이 문제는 크게 두 가지 방식으로 해결할 수 있습니다. 하나씩 살펴보겠습니다.

방법 1: 재귀 함수(Recursive) 활용

재귀 호출을 이용하면 숫자를 2로 계속 나누면서 나머지를 출력하는 방식으로 자연스럽게 2진수를 구할 수 있습니다.

예제 코드

def DecimalToBinary(num):
    if num > 1:
        DecimalToBinary(num // 2)
    print(num % 2, end='')

# 메인 코드
if __name__ == '__main__':
    # 10진수 입력값
    dec_val = 56
    # 2진수 변환 및 출력
    DecimalToBinary(dec_val)

실행 결과

111000

동작 원리:

  • 입력받은 수를 2로 나눈 몫(num // 2)으로 재귀 호출을 먼저 수행합니다.
  • 재귀 호출이 끝난 뒤 현재 수를 2로 나눈 나머지(num % 2)를 출력합니다.
  • 이렇게 하면 가장 높은 자릿수부터 차례대로 출력되어 올바른 2진수가 완성됩니다.

위 그림에서 볼 수 있듯이 모든 변수와 함수는 전역 범위(global scope)에서 선언되어 사용됩니다.

방법 2: 내장 함수 bin() 활용

파이썬에는 10진수를 2진수 문자열로 바꿔주는 내장 함수 bin()이 있습니다. 다만 bin()의 반환값 앞에는 0b라는 접두사가 붙기 때문에, 이를 제거하기 위해 replace() 메서드를 함께 사용합니다.

예제 코드

def decimalToBinary(n):
    return bin(n).replace("0b", "")

# 드라이버 코드
if __name__ == '__main__':
    print(decimalToBinary(56))

실행 결과

111000

참고: bin(56)의 원래 반환값은 '0b111000'입니다. 여기서 replace("0b", "")를 통해 접두사를 제거하면 깔끔한 2진수 문자열인 '111000'만 얻을 수 있습니다.

이 방식 역시 위 그림과 같이 모든 변수와 함수가 전역 범위에서 선언되어 동작합니다.

마무리

이번 글에서는 파이썬 프로그램으로 10진수를 2진수로 변환하는 두 가지 방법, 즉 재귀 함수를 이용한 방법내장 함수 bin()을 이용한 방법을 알아보았습니다. 간단한 실습이나 알고리즘 학습에는 재귀 방식이 개념 이해에 도움이 되며, 실무에서는 내장 함수를 활용하는 것이 더 효율적입니다.