Skip to content
Browse files


  • Loading branch information...
saq10002 committed Nov 6, 2014
1 parent 645857a commit ae1fb04578b0a4712e7ba6caf69fca3b2c7ab053
Showing with 22 additions and 2 deletions.
  1. +22 −2
@@ -1,6 +1,26 @@

Simple C++ dynamic bit array. It is like ```std::bitset``` but its size can be dynamically set.
Simple C++ dynamic bit array. It is like ```std::bitset``` but its size can be dynamically set. The bits are stored from left-to-right order as if in an array, where the leftmost bit is the ```0```th and the rightmost bit is the ```(n-1)```th bit.

See ds.dynamicbitset.test.h for usage.
Under the hood, bits are stored in a byte array, and the rightmost ```8-(n%8)``` bits in the rightmost byte remain unused.

The code is compiled under both ```MSVC``` and ```GCC```, and tested using Google C++ testing framework (

See the ```ds.dynamicbitset.test.h``` file for usage.

Supported Operations
* You can create a bit-array whose size can be set dynamically set. This is in contrast with ```std::bitset``` for which the size needs to be set in compile-time through template argument.
* You can create of empty (zero-size) bit-array which can be later initialized from any existing bit-array.
* You can get/set any bit. You can also set bits from an integer, where the higher-order bits of the supplied integer are copied to the bit-array.
* You can perform any/all/flip operations on the bit-array.
* You can perform standard bit-by-bit comparison operations between two bit-arrays. Supported comparisons are ```<, <=, >, >=, !=, ==```.
* You can extract a particular byte from the bit array.
* You can convert the bit-array into an ```std::string```, a ```const unsigned char*```, or even an ```int```. The last conversion is possible if the size of the bit-array is less than the number of bits in an ```int```.
* You can print a bit-array through an output stream like ```cout << myBitArray```.

To Do
* Standard bitwise operations between two ```DynamicBitset``` objects.

0 comments on commit ae1fb04

Please sign in to comment.
You can’t perform that action at this time.