0 purchases
bitmask
bitmask #
bitmask is a Dart package that provides a Bitmask class.
Introduction #
A Bitmask object contains
a collection of individual bits that may be set or not set (1 or 0).
Constructors and methods are provided for setting and unsetting individual
bits in a Bitmask and for applying operations such as bitwise ANDing, ORing, and XORing masks together, taking a bitwise complement, and for
getting the
integer value represented by the Bitmask object.
Bitmask objects are limited
to representing 63 bits as this is the largest number of bits that can be
contained in a Dart integer. If this class is used on the Web, the maximum
number of bits should be limited to 52 as this is the largest number of bits
that can be represented reliably by Javascript.
Here is a simple example showing how to use the Bitmask class with
enumerations:
import 'package:bitmask/bitmask.dart';
enum Maskbits { zero, one, two, three, four, }
void main() {
var mask1 = Bitmask.fromList([Maskbits.one.index,
Maskbits.three.index],
Maskbits.values().length);
mask1[Maskbits.four] = true;
var mask2 = Bitmask.fromBitmask(mask1);
mask2.unset(Maskbits.three.index);
print(mask1.flags.toRadixString(2)); // prints 11010
print((mask1 & mask2).flags.toRadixString(2)); // prints 10010
print((mask1 | mask2).flags.toRadixString(2)); // prints 11010
print((mask1 ^ mask2).flags.toRadixString(2)); // prints 1000
print(~mask1.flags.toRadixString(2)); // prints 101
}
copied to clipboard
Installation #
Add bitmask to you pubspec.yaml file.
dependencies:
bitmask: ^1.0.0
copied to clipboard
After saving the pubspec.yaml file, run:
dart pub update
copied to clipboard
Contributions #
If you would like to contribute to the bitmask library, please see
CONTRIBUTING.md.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.