arokettu/unsigned

Fixed length unsigned arithmetic emulation

1.3.5 2024-02-01 20:40 UTC

This package is auto-updated.

Last update: 2024-12-10 20:11:07 UTC


README

Packagist PHP Packagist Gitlab pipeline status Codecov

Fixed length unsigned arithmetic emulation for PHP. The lib was created as a helper for the random-polyfill.

Installation

composer require 'arokettu/unsigned'

Example

<?php
use Arokettu\Unsigned as u;
$a = u\from_int(1234567890123456789, 24); // use 24-byte a.k.a. 192-bit arithmetic
$b = u\from_hex('123456789abcdef01234567890abcdef', 24); // numbers must have same bitness
// 1234567890123456789 * 0x123456789abcdef01234567890abcdef =
$c = u\mul($a, $b);
var_dump(u\to_dec($c)); // 29873897512945703720213152879288233401251320475301467035

Documentation

Read full documentation here: https://sandfox.dev/php/unsigned.html

Also on Read the Docs: https://php-unsigned.readthedocs.io/

Support

Please file issues on our main repo at GitLab: https://gitlab.com/sandfox/unsigned/-/issues

Feel free to ask any questions in our room on Gitter: https://gitter.im/arokettu/community

License

The library is available as open source under the terms of the 2-Clause BSD License.