모든 진수에서 정수를 문자열로 변환
Python은 int() 함수를 통해 지정된 진수를 사용하여 문자열을 정수로 변환하는 편리한 기능을 제공합니다. , 그러나 정수를 다른 베이스의 문자열로 다시 변환하는 것은 어려운 일입니다. 이 글의 목표는 이 작업을 해결하고 내장 함수의 한계를 극복하는 일반적인 솔루션을 제공하는 것입니다.
int2base() 함수
문제를 해결하려면, 다음 요구 사항을 충족하는 int2base(num, base) 함수가 제안되었습니다.
놀랍도록 간단한 솔루션
기대와는 달리 간단한 솔루션 존재합니다:
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!