"MonkeeSage" <[EMAIL PROTECTED]> writes: > def to_bin(x): > out = [] > while x > 0: > out.insert(0, str(x % 2)) > x = x / 2 > return ''.join(out)
That returns the empty string for x=0. I'm not sure if that's a bug or a feature. It also returns the empty string for x < 0, probably a bug. It will break in Python 3, where 1 / 2 == 0.5. Here's yet another version: def to_bin(n): if n < 0: return '-' + to_bin(-n) if n==0: return '0' return ''.join( ("0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111",)[int(d,16)] \ for d in '%x'%n).lstrip('0') -- http://mail.python.org/mailman/listinfo/python-list