[Tutor] Function for converting ints from base10 to base2?
Dick Moores
rdm at rcblue.com
Wed Feb 21 05:47:28 CET 2007
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 know some of you CS people won't like what I do with negative ints,
but I wanted it this way. On other points than that, I'd appreciate
criticism/suggestions.
===========================================================
def computeBin(n):
"""converts base10 integer n to base2 b as string"""
from math import log, floor
sign = ''
if n == 0:
b = '0'
else:
if n < 0:
sign = "-"
n = -n
e = int(floor(log(n,2)))
b = '1'
for x in range(e):
r = n % 2**e
if r >= 2**(e-1):
b += '1'
else:
b += '0'
e -= 1
return sign + b
def printResult(n,b):
print "%d is %s" % (n, b)
def confirmResult(n,b):
print "Confirming using int():"
print "int(%s,2) is %s" % (b, int(b,2))
if __name__ == '__main__':
n = 1234567890
b = computeBin(n)
printResult(n,b)
confirmResult(n,b)
==============================================
Dick Moores
More information about the Tutor
mailing list