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!