Skip to content

The BitField package provides the primitives to work with bitfields in Go. This package is very simple and can be used to implement more complex data structures such as bitsets, bloom filters, etc.

License

Notifications You must be signed in to change notification settings

josestg/bitfield

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BitField

The BitField package provides the primitives to work with bitfields in Go. This package is very simple and can be used to implement more complex data structures such as bitsets, bloom filters, etc.

The BitField is implemented using uint64 type, so it can hold up to 64 bits for one bitfield. To work with bitfields larger than 64 bits, you can combine multiple BitField as an array to build bigger bitfields.

Installation

go get github.com/josestg/bitfield

Usage

package main

import (
	"fmt"
	"github.com/josestg/bitfield"
)

func main() {
	var f bitfield.BitField
	f = f.SetBit(0).SetBit(1).SetBit(3).SetBit(4)
	fmt.Printf("%08b\n", f)   // 00011011
	fmt.Println(f.IsSet(0))   // true
	fmt.Println(f.IsSet(2))   // false
	fmt.Println(f.IsSet(3))   // true
	fmt.Println(f.Cardinal()) // 4

	g := f.DelBit(3)
	fmt.Println(g.IsSet(3)) // false
}

About

The BitField package provides the primitives to work with bitfields in Go. This package is very simple and can be used to implement more complex data structures such as bitsets, bloom filters, etc.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages