> 백엔드 개발 > 파이썬 튜토리얼 > Python의 모든 기본에서 정수를 문자열로 변환하는 방법은 무엇입니까?

Python의 모든 기본에서 정수를 문자열로 변환하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-06 10:28:11
원래의
436명이 탐색했습니다.

How to Convert Integers to Strings in Any Base in Python?

모든 진수에서 정수를 문자열로 변환

Python은 int() 함수를 통해 지정된 진수를 사용하여 문자열을 정수로 변환하는 편리한 기능을 제공합니다. , 그러나 정수를 다른 베이스의 문자열로 다시 변환하는 것은 어려운 일입니다. 이 글의 목표는 이 작업을 해결하고 내장 함수의 한계를 극복하는 일반적인 솔루션을 제공하는 것입니다.

int2base() 함수

문제를 해결하려면, 다음 요구 사항을 충족하는 int2base(num, base) 함수가 제안되었습니다.

  • 정수 x를 a로 변환합니다. 기본 b의 문자열 str: int(str, b) == x
  • int() 함수에서 허용하는 모든 유효한 x 및 b를 지원합니다

놀랍도록 간단한 솔루션

기대와는 달리 간단한 솔루션 존재합니다:

def numberToBase(n, b):
    if n == 0:
        return [0]
    digits = []
    while n:
        digits.append(int(n % b))
        n //= b
    return digits[::-1]
로그인 후 복사

이 솔루션은 2부터 무한대까지 모든 진수에서 작동합니다. 큰 정수를 577진수로 변환해야 하는 경우(예:

numberToBase(67854 ** 15 - 102, 577)
로그인 후 복사

올바른 결과:

[4, 473, 131, 96, 431, 285, 524, 486, 28, 23, 16, 82, 292, 538, 149, 25, 41, 483, 100, 517, 131, 28, 0, 435, 197, 264, 455]
로그인 후 복사

이 결과는 필요에 따라 다른 진수로 쉽게 변환할 수 있음)) .

솔루션 이해

이것의 핵심 해결책은 다양한 진수의 숫자 표현을 이해하는 데 있습니다. 예를 들어, 10진수에서 숫자 123은 (1 10^2) (2 10^1) (3 * 10^0)을 나타냅니다. 마찬가지로, 임의의 기수 b에서 숫자는 b의 거듭제곱의 합으로 표현될 수 있습니다.

numberToBase() 함수는 입력 n을 b로 반복적으로 나누고 나머지를 수집하는 방식으로 작동합니다. 이 나머지는 역순으로 b진수의 숫자를 나타냅니다.

위 내용은 Python의 모든 기본에서 정수를 문자열로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿