Last Updated | | Ratings | | Unique User Downloads | | Download Rankings |
2023-02-28 (7 months ago)  | | Not yet rated by the users | | Total: 33 | | All time: 10,829 This week: 78 |
|
Description | | Author Smoren
Contributor
|
This package can create and manipulate bitmaps using binary numbers.
It provides a class that can perform several types of bitmap operations.
Currently, it can:
- Create a bitmap using an array with the bits' numbers set to 1
- Get the intersection of two bitmaps
- Check if two bitmaps are equal
- Add the values of two bitmaps
- Subtract the values of two bitmaps
- Check if a given bit is set
- Convert a bitmap to an array
- Etc... | |
 |
|
Innovation award
 Nominee: 14x |
|
Details
bitmap-tools

Tools for working with bitmaps
How to install to your project
composer require smoren/bitmap-tools
Unit testing
composer install
composer test-init
composer test
Usage
Simple usage
use Smoren\BitmapTools\Models\Bitmap;
// Create bitmap by int value:
$bm = Bitmap::create(6); // bitmap: 110
// Create bitmap by true bit positions:
$bm = Bitmap::create([1, 2]); // bitmap: 110
// Basic operations:
$bm = Bitmap::create([0, 2]);
var_dump($bm->getValue()); // 5
var_dump($bm->toArray()); // [0, 2]
var_dump($bm->hasBit(0)); // true
var_dump($bm->hasBit(1)); // false
var_dump($bm->hasBit(2)); // true
$bm = Bitmap::create([0, 1, 2]);
var_dump($bm->getValue()); // 7
var_dump($bm->toArray()); // [0, 1, 2]
$bm = Bitmap::create([]);
var_dump($bm->getValue()); // 0
var_dump($bm->toArray()); // []
// Intersections:
$bm = Bitmap::create(7);
var_dump($bm->intersectsWith(Bitmap::create(1))); // true
var_dump($bm->intersectsWith(Bitmap::create([1, 2]))); // true
$bm = Bitmap::create(6);
var_dump($bm->intersectsWith(Bitmap::create(2))); // true
var_dump($bm->intersectsWith(Bitmap::create(0))); // false
// Inclusions:
$bm = Bitmap::create(6);
var_dump($bm->includes(Bitmap::create(2))); // true (in binary numbers: 110 includes 010)
var_dump($bm->includes(Bitmap::create(1))); // false (in binary numbers: 110 not includes 001)
var_dump($bm->includes(Bitmap::create(3))); // false (in binary numbers: 110 not includes 011)
// Additions:
$bm = Bitmap::create(2); // bitmap: 010
$bm = $bm->add(Bitmap::create(1)); // bitmap: 011
$bm = $bm->add(Bitmap::create(6)); // bitmap: 111
// Subtractions:
$bm = Bitmap::create(15); // bitmap: 1111
$bm = $bm->sub(Bitmap::create(6)); // bitmap: 1001
$bm = $bm->sub(Bitmap::create(3)); // bitmap: 1000
|
Applications that use this package |
|
No pages of applications that use this class were specified.
If you know an application of this package, send a message to the author to add a link here.