modulo - floored division implementation.
npm install modulo-x href="https://travis-ci.org/Xotic750/modulo-x"
title="Travis status"> src="https://travis-ci.org/Xotic750/modulo-x.svg?branch=master"
alt="Travis status" height="18">
href="https://david-dm.org/Xotic750/modulo-x"
title="Dependency status"> alt="Dependency status" height="18"/>
href="https://david-dm.org/Xotic750/modulo-x?type=dev"
title="devDependency status"> alt="devDependency status" height="18"/>
href="https://badge.fury.io/js/modulo-x"
title="npm version"> alt="npm version" height="18">
href="https://www.jsdelivr.com/package/npm/modulo-x"
title="jsDelivr hits"> alt="jsDelivr hits" height="18">
href="https://bettercodehub.com/results/Xotic750/modulo-x"
title="bettercodehub score"> alt="bettercodehub score" height="18">
href="https://coveralls.io/github/Xotic750/modulo-x?branch=master"
title="Coverage Status"> alt="Coverage Status" height="18">
modulo - floored division implementation.
The notation “x modulo y” (y must be finite and nonzero) computes a value k
of the same sign as y (or zero) such that abs(k) < abs(y) and x-k = q × y
for some integer q.
Donald Knuth described floored division where the quotient is defined by
the floor function q = ⌊a/n⌋ and thus according to equation the remainder
would have the same sign as the divisor. Due to the floor function, the
quotient is always rounded downwards, even if it is already negative.
Kind: Exported function
Returns: number - The integer remainder.
See
- http://www.ecma-international.org/ecma-262/6.0/#sec-algorithm-conventions
- https://en.wikipedia.org/wiki/Modulo_operation
| Param | Type | Description |
| -------- | ------------------- | ------------------------------------- |
| dividend | number | The integer to find the remainder of. |
| divisor | number | The integer to divide by. |
Example
``js
import modulo from 'modulo-x';
console.log(modulo(1, 0x1000000)); // 1
console.log(modulo(-1, 0x1000000)); // 16777215 (2^24-1)
``