BigInt.asUintN()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2020.
Phương thức tĩnh BigInt.asUintN() cắt ngắn giá trị BigInt xuống số bit ít quan trọng nhất đã cho và trả về giá trị đó như một số nguyên không dấu.
Try it
const U64_CEIL = 2n ** 64n;
console.log(BigInt.asUintN(64, U64_CEIL - 1n));
// 18446744073709551615n (2n ** 64n - 1n, the maximum non-wrapping value)
console.log(BigInt.asUintN(64, U64_CEIL));
// 0n (wraps to zero)
console.log(BigInt.asUintN(64, U64_CEIL + 1n));
// 1n
console.log(BigInt.asUintN(64, U64_CEIL * 2n));
// 0n (wraps on multiples)
console.log(BigInt.asUintN(64, U64_CEIL * -42n));
// 0n (also wraps on negative multiples)
Cú pháp
BigInt.asUintN(bits, bigint)
Tham số
Giá trị trả về
Giá trị của bigint modulo 2 ** bits, như một số nguyên không dấu.
Ngoại lệ
RangeError-
Được ném nếu
bitslà âm hoặc lớn hơn 253 - 1.
Mô tả
Phương thức BigInt.asUintN cắt ngắn giá trị BigInt xuống số bit đã cho, và diễn giải kết quả như một số nguyên không dấu. Số nguyên không dấu không có bit dấu và luôn không âm. Ví dụ, đối với BigInt.asUintN(4, 25n), giá trị 25n được cắt ngắn thành 9n:
25n = 00011001 (base 2)
^==== Use only the four remaining bits
===> 1001 (base 2) = 9n
Note:
Các giá trị BigInt luôn được mã hóa dưới dạng bù hai trong hệ nhị phân.
Không giống như các API ngôn ngữ tương tự như Number.prototype.toExponential(), asUintN là thuộc tính tĩnh của BigInt, vì vậy bạn luôn dùng nó như BigInt.asUintN(), thay vì là phương thức của giá trị BigInt. Hiển thị asUintN() như "hàm thư viện chuẩn" cho phép tương tác với asm.js.
Ví dụ
>Giữ trong phạm vi 64-bit
Phương thức BigInt.asUintN() có thể hữu ích để giữ trong phạm vi số học 64-bit.
const max = 2n ** 64n - 1n;
BigInt.asUintN(64, max); // 18446744073709551615n
BigInt.asUintN(64, max + 1n); // 0n
// bằng không vì tràn: 64 bit thấp nhất đều là không
Đặc tả
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-bigint.asuintn> |