將整數轉換為任何基數的字串
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中文網其他相關文章!