StackOverflow

### Related

### Answer rating: 141

Python allows easy creation of an integer from a string of a given base via

```
int(str, base).
```

I want to perform the inverse: **creation of a string from an integer**,
i.e. I want some function `int2base(num, base)`

, such that:

```
int(int2base(x, b), b) == x
```

The function name/argument order is unimportant.

For any number `x`

and base `b`

that `int()`

will accept.

This is an easy function to write: in fact it"s easier than describing it in this question. However, I feel like I must be missing something.

I know about the functions `bin`

, `oct`

, `hex`

, but I cannot use them for a few reasons:

Those functions are not available on older versions of Python, with which I need compatibility with (2.2)

I want a general solution that can be called the same way for different bases

I want to allow bases other than 2, 8, 16

- Python elegant inverse function of int(string, base)
- Integer to base-x system using recursion in python
- Base 62 conversion in Python
- How to convert an integer to the shortest url-safe string in Python?

Surprisingly, people were giving only solutions that convert to small bases (smaller than the length of the English alphabet). There was no attempt to give a solution which converts to any arbitrary base from 2 to infinity.

So here is a super simple solution:

```
def numberToBase(n, b):
if n == 0:
return [0]
digits = []
while n:
digits.append(int(n % b))
n //= b
return digits[::-1]
```

so if you need to convert some super huge number to the base `577`

,

`numberToBase(67854 ** 15 - 102, 577)`

, will give you a correct solution:
`[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]`

,

Which you can later convert to any base you want

X
# Submit new EBook