Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menukar Integer kepada Rentetan dalam Mana-mana Pangkalan dalam Python?
Menukar Integer kepada Rentetan dalam Mana-mana Pangkalan
Python menyediakan fungsi yang mudah untuk menukar rentetan kepada integer menggunakan asas yang ditentukan melalui fungsi int() , tetapi menukar integer kembali kepada rentetan dalam pangkalan yang berbeza menimbulkan cabaran. Artikel ini bertujuan untuk menangani tugas ini dan menyediakan penyelesaian umum yang mengatasi batasan yang terdapat dalam fungsi terbina dalam.
Fungsi int2base()
Untuk menangani masalah, fungsi int2base(num, base) dicadangkan, memenuhi keperluan berikut:
A Anehnya Penyelesaian Mudah
Bertentangan dengan jangkaan, penyelesaian yang mudah wujud:
def numberToBase(n, b): if n == 0: return [0] digits = [] while n: digits.append(int(n % b)) n //= b return digits[::-1]
Penyelesaian ini berfungsi untuk mana-mana asas dari 2 hingga infiniti. Jika anda perlu menukar integer besar kepada asas 577, contohnya:
numberToBase(67854 ** 15 - 102, 577)
Ia kembali dengan betul:
[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 dengan mudah kepada mana-mana asas lain mengikut keperluan .
Memahami Penyelesaian
Kunci kepada ini penyelesaian terletak pada memahami perwakilan nombor dalam asas yang berbeza. Sebagai contoh, dalam asas 10, nombor 123 mewakili (1 10^2) (2 10^1) (3 * 10^0). Begitu juga, dalam asas b arbitrari, nombor boleh diwakili sebagai jumlah kuasa b.
Fungsi numberToBase() berfungsi dengan membahagikan input n secara berulang dengan b dan mengumpulkan bakinya. Baki ini, dalam susunan terbalik, mewakili digit nombor dalam asas b.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Integer kepada Rentetan dalam Mana-mana Pangkalan dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!