>>> int('122',3)
17
En effet, 122 en base 3, c'est $1\times 3^2 + 2\times 3^1 +2\times 3^0$, donc 17 en base 10.
Par contre, pour passer de la base 10 à une autre base, il n'y a pas de fonction prédéfinie.
En voici une qui pourrait convenir (base se dit radix en anglais) :
>>> import string >>> def str( number, radix ): ... if not 2 <= radix <= 36: ... raise ValueError, "La base doit être entre 2 et 36" ... # 26 lettres, 10 chiffres... ... abc = string.digits + string.letters ... result = '' ... if number < 0: ... number = -number ... sign = '-' ... else: ... sign = '' ... while True: ... number, rdigit = divmod( number, radix ) ... result = abc[rdigit] + result ... if number == 0: ... return sign + result
Le résultat est une chaîne de caractères (commençant éventuellement par -)
This page may have a more recent version on pmwiki.org: PmWiki:UnePageAuHasard, and a talk page: PmWiki:UnePageAuHasard-Talk.