On Tue, 20 Feb 2007, Dick Moores wrote: > I was surprised to be unable to find a function in Python for > converting ints from base10 to base2. Is there one? > > I wrote one, but have I reinvented the wheel again? (Even if I have, > it was an interesting exercise for me.)
I like the approach of mapping hex or octal digits posted by Alan and Bob, but, not thinking of that, this would be my straightforward approach: def computeBin(n): """converts base10 integer n to base2 b as string""" if n == 0: return '0' sign = ['','-'][n<0] num = abs(n) seq = [] while (num != 0): (num, bit) = divmod(num, 2) seq.append(str(bit)) seq.append(sign) return ''.join(reversed(seq)) if __name__ == "__main__": x = 1234567890 assert x == int(computeBin(x),2) x = -1234567890 assert x == int(computeBin(x),2) _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor