Skip to content

A Long class for representing a 64-bit two's-complement integer value.

License

Notifications You must be signed in to change notification settings

leonardogbxv/long.js

Repository files navigation

Long.js - A Long class for representing a 64-bit two's-complement integer

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

Build Status Looking for arbitrary byte size integers? Try IntN.js!

Why?

As of the ECMAScript specification, number types have a maximum value of 2^53. Beyond that, behaviour might be unexpected. Furthermore, bitwise operations can only be performed on 32bit numbers. 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 Long = dcodeIO.Long;)
  • node.js compatible, also available via npm
  • Fully documented using jsdoc3
  • API-compatible to the Closure Library implementation
  • Zero production dependencies
  • Small footprint

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.config({
    "paths": {
        "Math/Long": "/path/to/Long.js"
    }
});
require(["Math/Long"], function(Long) {
    var longVal = new Long(0xFFFFFFFF, 0x7FFFFFFF);
    console.log(longVal.toString());
});

Browser / shim

<script src="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

About

A Long class for representing a 64-bit two's-complement integer value.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 97.3%
  • WebAssembly 2.7%