Skip to content

Small library for working with an arbitrarily large array of booleans

License

Notifications You must be signed in to change notification settings

binarymax/bitflags

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bitflags

Small library for working with an arbitrarily large array of booleans

Install

npm

npm install bitflags

API

var bitflags = require('bitflags');
var flags = bitflags(1000000); //Creates a million boolean flags

get

Gets the bool at offset

flags.get(n) //returns true or false

set

Sets a bit at offset to bool

flags.set(n,0) //sets to false
flags.set(n,1) //sets to true
flags.set(n,'truthy') //sets to true

on

Sets the bit at offset to true

flags.on(n)

off

Sets the bit at offset to false

flags.off(n)

flip

Flip and returns the value of a single bit at offset

flags.flip(n)

fill

Reset to all 1's

flags.fill()

clear

Reset to all 0's

flags.clear()

size

Return exact size in bits note: may be larger than size specified in constructor, due to storage in octets

flags.size()

Example

Sets a flag for each prime in the first 2000000 integers, using Sieve of Eratosthenes, returns a function to test for primes:

var getSieveOfEratosthenes = function() {
	var size = 2000000;
	var bits = bitflags(size);
	bits.fill();
	bits.set(0,0);
	var lim = Math.ceil(Math.sqrt(size));
	for(var i=2;i<=lim;i++) {
		if(bits.get(i)){
			for(var j=i*i;j<=size;j+=i) {
				bits.set(j,0);
			}
		}
	};

	return function(n){ return bits.get(n); };
};

About

Small library for working with an arbitrarily large array of booleans

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published