navarr/binary-explode

Explode a number into it's binary components

Fund package maintenance!
navarr

v2.0.1 2021-12-27 22:26 UTC

This package is auto-updated.

Last update: 2024-10-30 02:10:39 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License
Tests Code Coverage Mutation Score

This package provides two functions usable to convert a number into an array of it's binary components.

Examples:

  1. [1]
  2. [2]
  3. [2, 1]
  4. [4]
  5. [4, 1]
  6. [4, 2]
  7. [4, 2, 1]

etc

Usage

Installation

composer require navarr/binary-explode`

Shared Interface

This package provides a shared interface, \Navarr\BinaryExploder\BinaryExploderInterface. This interface takes an int and returns an iterable<int> containing or generating the binary components of that int.

\Navarr\BinaryExploder\LinearBinaryExploder::explode(int $value) : iterable

Uses a linear algorithm that checks the logical AND of the number with increasing powers of 2.

This algorithm is typically fastest for numbers that are unlikely to be a power of 2.

Navarr\BinaryExploder\LogarithmicBinaryExploder::explode(int $value) : iterable

Uses a linear algorithm that checks the log(base 2) of the number and then it's remainders.

This algorithm is typically fastest for numbers that are likely to be a power of 2.