BigInt.asIntN / asUintN în JavaScript

Taie un BigInt la un număr fix de biți, ca un întreg cu semn (asIntN) sau fără semn (asUintN).

Sintaxă
BigInt.asIntN(biti, valoare)
BigInt.asUintN(biti, valoare)

Ce face BigInt.asIntN / asUintN

Aceste funcții simulează întregii de lungime fixă din alte limbaje: păstrează doar ultimii biti biți ai valorii. asUintN îi interpretează ca număr fără semn (de la 0 la 2biți − 1), iar asIntN ca număr cu semn în complement față de doi.

Sunt folosite pentru calcule pe 64 de biți (hash-uri, protocoale binare), împreună cu BigInt64Array și DataView.getBigInt64.

Parametri

Parametru Descriere
biti Numărul de biți păstrați (0 până la 253 − 1).
valoare Valoarea BigInt.

Ce returnează

Un BigInt.

Exemple

Exemplul 1: Depășirea unui întreg pe 8 biți

console.log(BigInt.asUintN(8, 255n), BigInt.asUintN(8, 256n), BigInt.asUintN(8, -1n));
console.log(BigInt.asIntN(8, 127n), BigInt.asIntN(8, 128n), BigInt.asIntN(8, 255n));

Rezultat

255n 0n 255n
127n -128n -1n

Exemplul 2: Valoarea maximă pe 64 de biți

const max64 = BigInt.asUintN(64, -1n);

console.log(max64);
console.log(BigInt.asIntN(64, max64));

Rezultat

18446744073709551615n
-1n

Greșeli frecvente

  • Dai un număr obișnuit în loc de BigInt: BigInt.asUintN(8, 300) aruncă TypeError. Scrie 300n.

Comenzi înrudite

  • BigInt: Numere întregi de orice mărime, fără pierdere de precizie; se scriu cu n la final.
  • DataView: Citește și scrie numere de tipuri diferite la orice poziție dintr-un ArrayBuffer, cu ordinea octeților aleasă.