Skip to content
Simple C++ dynamic bit array
Branch: master
Clone or download
Latest commit 5166523 Nov 6, 2014
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
gtest-1.7.0 Initial commit Oct 26, 2014
nbproject Initial commit Oct 26, 2014
.gitignore Initial commit Oct 26, 2014
Makefile Initial commit Oct 26, 2014
README Initial commit Oct 26, 2014
README.md Update README.md Nov 6, 2014
common.h Initial commit Oct 26, 2014
ds.DynamicBitset.cpp Initial commit Oct 26, 2014
ds.DynamicBitset.h Initial commit Oct 26, 2014
ds.DynamicBitset.test.h Initial commit Oct 26, 2014
dynamicbitset_test Initial commit Oct 26, 2014
dynamicbitset_test.cpp Initial commit Oct 26, 2014
test.h Initial commit Oct 26, 2014
test.this.module.h Initial commit Oct 26, 2014

README.md

dynamicbitset

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 0th and the rightmost bit is the (n-1)th bit.

Under the hood, bits are stored in a byte array, and the rightmost 8-(n%8) bits in the rightmost byte remain unused when n is not a multiple of 8.

The code is compiled under both MSVC and GCC, and tested using Google C++ testing framework (http://code.google.com/p/googletest/).

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.
You can’t perform that action at this time.