My approach has been to store it as an array and then build the integer as needed. This code requires Python 2.5 or later.
def bits2int(l): return sum([2**i if j else 0 for i,j in enumerate(l)]) To convert the other way: def int2bits(m, n): return [int(bool(m&(1<<i))) for i in range(n)] Where n is the number of bits to convert. You could log2 to find this, or count shift-rights until you get zero. # for example, inc=4 gives log16, or the number of hexadecimal digits # required to represent n. def log2(n, inc=1): i = 0 while n: i += 1 n >>= inc return i floating point is so messy and slow :) Cheers On Wednesday 02 December 2009 12:08, Robert Berman wrote: > Hi, > > I am trying to represent a number as a list of bits: for example the bit > representation of the integer 8. I did find a number of articles > pertaining to a module called bitarray but I was unable to > download/install that package. I am using Linux on Ubuntu 9.10; Python > 2.6.2. > > I am almost certain there is a relatively easy way to convert an integer > that can be represented by 32 bits into an array of bits that I can > iterate over looking for switched on bits or switched off bits. > > Any information such as recipes or past articles in this list providing > methods to create and manipulate bit arrays would be most appreciated. > > Robert _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor