An open API service indexing awesome lists of open source software.

https://github.com/narasimha1997/bit_vector

A header-only bit vector library for C . This can be used for implementing dynamic bit-vectors for building Bloom-Filters and Hyper-Logs .
https://github.com/narasimha1997/bit_vector

bloom-filter c cplusplus datastructures hashtable hyperloglog

Last synced: 29 days ago
JSON representation

A header-only bit vector library for C . This can be used for implementing dynamic bit-vectors for building Bloom-Filters and Hyper-Logs .

Awesome Lists containing this project

README

          

# bit_vector
A header-only bit vector library for C . This can be used for implementing dynamic bit-vectors for building Bloom-Filters and Hyper-Logs .

This repository provides header files for creating and using a datastructure called bit-vector. Bit Vector is char array with operations implemented
at bit level.

### Usage :
Just import `bit_vector.h` , you are ready to go.

Example program demonstrating usage of `bit_vector.h` routines :

```C
#include
#include

int main(int argc, char const *argv[])
{
bit_group_t * bit_vector = create_bit_vector(64);
set_bit(bit_vector, 15);
set_bit(bit_vector, 10);
set_bit(bit_vector, 0);
set_bit(bit_vector, 20);
set_bit(bit_vector, 33);
set_bit(bit_vector, 63);

printf("-------Tests---------\n");

int count = get_n_bits_set(bit_vector, 64);
printf("Count test : %d\n", count);
printf("is set test : %d\n", check_is_set(bit_vector, 32));
printf("\nReset test\n");
reset_bit(bit_vector, 20);
printf("Bit at position 20 : %d\n", check_is_set(bit_vector, 20));

return 0;
}

```
You can also use routines in `bit.h` to implement your own bit vector functionalities.