W3cubDocs

/JavaScript

BigInt.asIntN()

The BigInt.asIntN static method clamps a BigInt value to the given number of bits, and returns that value as a signed integer.

Try it

Syntax

BigInt.asIntN(bits, bigint);

Parameters

bits

The amount of bits available for the integer size.

bigint

The BigInt value to clamp to fit into the supplied bits.

Returns

The value of bigint modulo 2^bits, as a signed integer.

Description

The BigInt.asIntN method clamps a BigInt value to the given number of bits, and interprets the result as a signed integer. For example, for BigInt.asIntN(3, 25n), the value 25n is clamped to 1n:

25n = 00011001 (base 2)
          ^=== Clamp to three remaining bits
===>       001 (base 2) = 1n

If the leading bit of the remaining number is 1, the result is negative. For example, BigInt.asIntN(4, 25n) yields -7n, because 1001 is the encoding of -7 under two's complement:

25n = 00011001 (base 2)
         ^==== Clamp to four remaining bits
===>      1001 (base 2) = -7n

Note: BigInt values are always encoded as two's complement in binary.

Examples

Staying in 64-bit ranges

The BigInt.asIntN() method can be useful to stay in the range of 64-bit arithmetic.

const max = 2n ** (64n - 1n) - 1n;

BigInt.asIntN(64, max);
// ↪ 9223372036854775807n

BigInt.asIntN(64, max + 1n);
// ↪ -9223372036854775808n
// negative because the 64th bit of 2^63 is 1

Specifications

Browser compatibility

Desktop Mobile Server
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet Deno Node.js
asIntN
67
79
68
No
54
14
67
67
68
48
14
9.0
1.0
10.4.0

See also

© 2005–2022 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt/asIntN