On Wed, May 6, 2009 at 11:42 PM, Todd B. [email protected]
wrote:
something. According to what I’ve read so far, base64 is not, and
base62 is, except for that paper written in a scientific journal that
I don’t have access to (but, for the summary, of course). I suppose
that is what the OP wanted anyway.
No, it’s a number base transformation. Here’s an example using base 7
(as being easier to work with than 62 :)):
letting n = 1250, and using # as a divmod operator:
1250 # 7 = 178, 4
178 # 7 = 25, 3
25 # 7 = 3, 4
3 # 7 = 0, 3 ← we have reached n=0, so the loop terminates
so 1250[base 10] = 3434 [base 7]
If you think about it, base 10 works the same way:
1250 # 10 = 125, 0
125 # 10 = 12, 5
12 # 10 = 1, 2
1 # 10 = 0, 1
so 1250[base 10] = 1250[base 10]
To go the other way, you repeatedly add the least significant digit
and multiply by the base
so 3434[7]
start with 0, and read the digits in forward order
(0 * 7) + 3 = 3
3 * 7 + 4 = 25
24 * 7 + 3 = 178
178 * 7 + 4 = 1250 <— et voila!
martin
martin