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!