728x90
반응형

 티스토리 

 

입력받은 decimal을 binary 값으로 출력

아래 convert  재귀함수를 만들어 입력받은 숫자를 이진수로 변환하는 프로그램을 만들기 위해서는 사용자 입력 메커니즘을 구현하고 convert 함수가 재귀 오류를 피하기 위해 기본 경우(base case)를 제대로 처리하도록 해야 합니다. 여기에 원래의 convert 함수를 수정하여 기본 경우를 포함한 종합적인 해결책을 제공합니다.

1. 코드리뷰

def convert(num):
    # 기본 경우: num이 0이나 1일 때, 이진수 표현으로 num을 직접 반환할 수 있습니다.
    if num == 0:
        return 0
    else:
        # 재귀적으로 convert를 호출하여 이진 숫자를 끝(가장 낮은 비트)에서 시작으로 구성합니다.
        return (num % 2 + 10 * convert(num // 2))

# 사용자로부터 숫자를 입력받기 위한 입력 메커니즘.
try:
    num = int(input("이진수로 변환할 숫자를 입력하세요: "))
    # 숫자가 음수가 아닌지 확인합니다.
    if num < 0:
        print("양의 정수를 입력해주세요.")
    else:
        binary_representation = convert(num)
        print(f"{num}의 이진 표현은: {binary_representation}입니다.")
except ValueError:
    # 입력값이 정수가 아닌 경우를 처리합니다.
    print("유효한 정수를 입력해주세요.")

아래 클릭하여 추가 리뷰 확인

더보기

이 스크립트는 다음과 같은 작업을 수행합니다:

convert 함수를 기본 경우를 적절히 처리하여 무한 재귀를 피하도록 정의합니다. 기본 경우는 num이 0일 때, 더 이상의 호출 없이 직접 0을 반환하는 것입니다.
입력을 안전하게 정수로 변환하려고 시도하는 try-except 블록을 사용합니다. 사용자가 정수가 아닌 것을 입력하면 유효한 정수를 입력하라는 메시지를 출력합니다.
변환을 시도하기 전에 사용자 입력이 음수가 아닌 정수인지 확인합니다. 이 간단한 재귀 함수는 음수의 이진 표현을 처리하지 않습니다.
사용자의 입력으로 convert 함수를 호출하고 이진 표현을 출력합니다.
이 접근 방식은 프로그램이 견고하도록 보장하며, 유효하지 않은 입력을 우아하게 처리하고 사용자를 안내하기 위한 명확한 메시지를 제공합니다.

 

반응형

 

마무리

- 이번 포스팅은 십진수를 2진수로 변환하는 방법에 대해 알아봤습니다.

 
 

궁금한 사항은 lution2@gmail.com로 문의사항  주시면 답변 드리겠습니다.
감사합니다.

 

 

728x90
반응형

+ Recent posts