"number-in-base" ``oneliner''
Bengt Richter
bokr at oz.net
Sat Oct 30 23:28:52 EDT 2004
On Sat, 30 Oct 2004 09:02:14 GMT, bokr at oz.net (Bengt Richter) wrote:
[... previous versions ...]
Silly last best shot put the quotient in an unneeded box. Sorry for all the
self-followups. I think I'll call this my best version (so far ;-):
>>> def number_in_base(x, N=10, digits='0123456789ABCDEF'):
... return '-'[:x<0]+''.join([digits[r] for q in [abs(x)]
... for q,r in iter(lambda:divmod(q, N), (0,0))][::-1]) or '0'
...
>>> number_in_base( 126, 2)
'1111110'
>>> number_in_base(-126, 2)
'-1111110'
>>> number_in_base(-126, 8)
'-176'
>>> number_in_base(-126,16)
'-7E'
>>> number_in_base( 1,16)
'1'
>>> number_in_base( 1, 2)
'1'
>>> number_in_base( 0, 2)
'0'
Regards,
Bengt Richter
More information about the Python-list
mailing list