JSPM

  • Created
  • Published
  • Downloads 23536625
  • Score
    100M100P100Q234700F
  • License Apache License, Version 2.0

Long.js: A Long class for representing a 64-bit two's-complement integer value derived from the Closure Library.

Package Exports

  • long

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (long) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Long.js

A Long class for representing a 64-bit two's-complement integer value derived from the Closure Library for stand-alone use.

Why?

As of the ECMAScript specification, number types have a maximum value of 2^53. Beyond that, JavaScript falls back to double internally. However, in some use cases it is required to be able to perform reliable mathematical and/or bitwise operations on the full 64bits. This is where Long.js comes into play.

Features

  • CommonJS compatible
  • RequireJS/AMD compatible
  • Shim compatible (include the script, then use var ByteBuffer = dcodeIO.ByteBuffer;)
  • node.js compatible, also available via npm
  • Fully documented using jsdoc3
  • Zero production dependencies
  • Small footprint

Long

  • Construction from high and low bits as 32bit integers: new Long(low, high) and Long.fromBits(low, high)
  • ...from a 32bit integer: Long.fromInt(value) including a cache for frequently used small numbers
  • ...from a number which may internally be a number or double type: Long.fromNumber(value)
  • ...from a string: Long.fromString(value[, radix=10])
  • Conversion to a 32bit integer: Long#toInt()
  • ...to a number: Long#toNumber()
  • ...to a string: Long#toString([radix=10])
  • Getters for high and low bits as 32bit integers: Long#getLowBits(), Long#getHighBits(), Long#getLowBitsUnsigned()
  • Comparison: Long#equals(other), Long#notEquals(other), Long#lessThan(other), Long#lessThanOrEqual(other), Long#greaterThan(other), Long#greaterThanOrEqual(other), Long#compare(other)
  • Common tests: Long#isZero(), Long#isNegative(), Long#isOdd(), Long#isEven()
  • Math: Long#negate(), Long#add(other), Long#subtract(other), Long#multiply(other), Long#div(other), Long#modulo(other)
  • Bitwise operations: Long#not(), Long#and(other), Long#or(other), Long#xor(other), Long#shiftLeft(numBits), Long#shiftRight(numBits), Long#shiftRightUnsigned(numBits)

Usage

node.js / CommonJS

Install: npm install long

var Long = require("Long");
var longVal = new Long(0xFFFFFFFF, 0x7FFFFFFF);
console.log(longVal.toString());
...

RequireJS / AMD

require(["path/to/Long.js"], function(Long) {
    var longVal = new Long(0xFFFFFFFF, 0x7FFFFFFF);
    console.log(longVal.toString());
});

Browser / shim

<script src="//raw.github.com/dcodeIO/Long.js/master/Long.min.js"></script>
var Long = dcodeIO.Long;
var longVal = new Long(0xFFFFFFFF, 0x7FFFFFFF);
alert(longVal.toString());

Documentation

Downloads

License

Apache License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.html