Décompose un nombre dans la base i-1. Comme 5=(i-1)^8+(i-1)^7+(i-1)^6+(i-1)^4+1, on écrit que 5=111010001 dans la base i-1.
def baseneg(n,b): if b==0: return "0" ch="" while n: n,r=divmod(n,b) if r<0: n,r=n+1,r-b ch=str(r)+ch return ch def baseim1(n): return "".join(["0000","0001","1100","1101"][c] for c in list(map(int,str(baseneg(n,-4))))).lstrip("0") if n else 0