---
hide_title: false
hide_table_of_contents: false
pagination_next: null
pagination_prev: null
---
# BigInt.asUintN()

The **`BigInt.asUintN`** static method clamps a `BigInt` value to the given number of bits, and returns that value as an unsigned integer.

## Syntax

```js
BigInt.asUintN(bits, bigint)
```

### Parameters

- `bits`
  - : The amount of bits available for the returned BigInt. Should be an integer between 0 and 2<sup>53</sup> - 1, inclusive.
- `bigint`
  - : The BigInt value to clamp to fit into the supplied bits.

### Return value

The value of `bigint` modulo 2^`bits`, as an unsigned integer.

### Exceptions

- [`RangeError`](../../globals/RangeError/RangeError.mdx)
  - : Thrown if `bits` is negative or greater than 2<sup>53</sup> - 1.

## Description

The `BigInt.asUintN` method clamps a `BigInt` value to the given number of bits, and interprets the result as an unsigned integer. Unsigned integers have no sign bits and are always non-negative. For example, for `BigInt.asUintN(4, 25n)`, the value `25n` is clamped to `9n`:

```plain
25n = 00011001 (base 2)
         ^==== Clamp to four remaining bits
===>      1001 (base 2) = 9n
```

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

Unlike similar language APIs such as [`Number.prototype.toExponential()`](../Number/prototype/toExponential.mdx), `asUintN` is a static property of `BigInt`, so you always use it as `BigInt.asUintN()`, rather than as a method of a BigInt value. Exposing `asUintN()` as a "standard library function" allows [interop with asm.js](https://github.com/tc39/proposal-bigint/blob/master/ADVANCED.md#dont-break-asmjs).
