Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menukar Integer kepada Rentetan dalam Mana-mana Pangkalan dalam Python?

Bagaimana untuk Menukar Integer kepada Rentetan dalam Mana-mana Pangkalan dalam Python?

Barbara Streisand
Barbara Streisandasal
2024-12-06 10:28:11404semak imbas

How to Convert Integers to Strings in Any Base in 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:

  • Menukar integer x kepada rentetan str dalam asas b: int(str, b) == x
  • Menyokong sebarang x dan b yang sah yang diterima oleh fungsi int()

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn