Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menukarkan Integer kepada Rentetan dalam Pangkalan Arbitrari dalam Python?
Menukar Integer kepada Rentetan dalam Asas Arbitrari
Dalam Python, integer boleh ditukar dengan mudah daripada rentetan menggunakan fungsi int(str, base) . Walau bagaimanapun, operasi songsang untuk mencipta rentetan daripada integer boleh menjadi lebih mencabar.
Penyelesaian Tersuai untuk Pangkalan Arbitrari
Kod berikut mentakrifkan penyelesaian tersuai, numberToBase, yang boleh menukar sebarang integer n kepada rentetan dalam mana-mana asas b:
def numberToBase(n, b): if n == 0: return [0] digits = [] while n: digits.append(int(n % b)) n //= b return digits[::-1]
Fungsi ini berfungsi pada prinsip pembahagian berulang oleh tapak b. Ia berulang kali mengira baki n apabila dibahagikan dengan b dan menambahkannya pada senarai digit. Proses ini berterusan sehingga n menjadi sifar. Digit kemudiannya diterbalikkan untuk mendapatkan perwakilan yang betul dalam asas b.
Contoh Penggunaan
Untuk menukar nombor besar kepada asas 577:
print(numberToBase(67854 ** 15 - 102, 577))
Output:
[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]
Hasil ini kemudiannya boleh ditukar kepada mana-mana asas lain sebagai diperlukan.
Kelebihan Berbanding Fungsi Terbina dalam
Tidak seperti fungsi terbina dalam seperti bin, okt dan hex, fungsi numberToBase menawarkan beberapa kelebihan:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukarkan Integer kepada Rentetan dalam Pangkalan Arbitrari dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!