Home >Backend Development >Python Tutorial >How Can I Convert Integers to Strings in Arbitrary Bases in Python?
Converting Integers to Strings in Arbitrary Bases
In Python, integers can be easily converted from strings using the int(str, base) function. However, the inverse operation of creating a string from an integer can be more challenging.
Custom Solution for Arbitrary Bases
The following code defines a custom solution, numberToBase, that can convert any integer n to a string in any base b:
def numberToBase(n, b): if n == 0: return [0] digits = [] while n: digits.append(int(n % b)) n //= b return digits[::-1]
This function works on the principle of repeated division by the base b. It repeatedly calculates the remainder of n when divided by b and adds it to a list of digits. The process continues until n becomes zero. The digits are then reversed to obtain the correct representation in base b.
Example Usage
To convert a large number to base 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]
This result can then be converted to any other base as needed.
Advantages Over Built-in Functions
Unlike built-in functions such as bin, oct, and hex, the numberToBase function offers several advantages:
The above is the detailed content of How Can I Convert Integers to Strings in Arbitrary Bases in Python?. For more information, please follow other related articles on the PHP Chinese website!