/binary-explode

Explode a number into it's binary components

Primary LanguagePHPMIT LicenseMIT

Binary Exploders

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.