[Tutor] working with bit arrays
Robert Berman
bermanrl at cfl.rr.com
Wed Dec 2 20:03:33 CET 2009
Wayne,
Thank you very much.
Robert
On Wed, 2009-12-02 at 12:48 -0600, Wayne Werner wrote:
> On Wed, Dec 2, 2009 at 12:08 PM, Robert Berman <bermanrl at cfl.rr.com>
> 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.
>
>
>
> Python 2.6+ (as far as I know) has the bin() function:
>
>
> Python 2.6.2 (r262:71605, Apr 14 2009, 22:40:02) [MSC v.1500 32 bit
> (Intel)] on
> win32
> Type "help", "copyright", "credits" or "license" for more information.
> >>> bin(8)
> '0b1000'
> >>>
>
>
> And larger:
>
>
> >>> bin(99999999999999999999999)
> '0b10101001011010000001011000111111000010100101011110110011111111111111111111111'
>
>
> You can convert them to integers to use ^ (XOR) or & (AND) and other
> binary operations on
> them: http://docs.python.org/reference/expressions.html#binary-bitwise-operations
>
>
> >>> a = int('01001', 2)
> >>> b = int('00001', 2)
> >>> a & b == b
> True
> >>> a = int('01110', 2)
> >>> a & b == b
> False
>
>
> There may be some other way to check, but that's probably the easiest
> I know of.
>
>
> HTH,
> Wayne
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20091202/fd21f287/attachment.htm>
More information about the Tutor
mailing list