首頁 >後端開發 >Python教學 >如何在 Python 中將整數轉換為任意基數的字串?

如何在 Python 中將整數轉換為任意基數的字串?

Barbara Streisand
Barbara Streisand原創
2024-12-06 10:28:11410瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn