Skip to main content

A pure-Python memory-efficient packed representation for bit arrays

Project description

This class presents a pure-Python memory efficient packed representation for bit arrays.

Changes introduced in version 1.3: (1) One more constructor mode included: When initializing a new bit vector with an integer value, you can now also specify a size for the bit vector. The constructor zero-pads the bit vector from the left with zeros. (2) The BitVector class now supports ‘if x in y’ syntax to test if the bit pattern ‘x’ is contained in the bit pattern ‘y’. (3) Improved syntax to conform to well-established Python idioms. (4) What used to be a comment before the beginning of each method definition is now a docstring.

Changes introduced in version 1.2: (1) one more constructor mode: a bit vector can now be constructed directly from a bitstring; (2) rich comparison operators overloaded; (3) minimal length bit vectors constructed from int values; (4) methods provided for extending a bit vector from the left and from the right; (5) a unittest based testing framework incorporated in the package; (6) additional debugging in code and in package setup.

Changes introduced in version 1.1.1: (1) peek feature incorporated in block reads from disk files; (2) it is now possible to construct zero-sized bit vectors.

The class supports the following operators/methods:










__eq__, __ne__, __lt__, __le__, __gt__, __ge__

‘|’ for bitwise or

‘&’ for bitwise and

‘^’ for bitwise xor

‘~’ for bitwise inversion

‘<<’ for circular shift to the left

‘>>’ for circular shift to the right

‘+’ for concatenation

intValue(), __int__ for returning the integer value










Project details

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page