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 2020ë 9ì.
BigInt.asUintN() ì ì ë©ìëë BigInt ê°ì 주ì´ì§ ìµíì ë¹í¸ ìë¡ ìë¥´ê³ í´ë¹ ê°ì ë¶í¸ ìë ì ìë¡ ë°íí©ëë¤.
ìëí´ ë³´ê¸°
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)
구문
BigInt.asUintN(bits, bigint)
매ê°ë³ì
ë°í ê°
ë¶í¸ ìë ì ìì¸, bigintì 2^bitsì ëë¨¸ì§ ì°ì° ê°ì
ëë¤.
ìì¸
RangeError-
bitsê° ììì´ê±°ë 253 - 1 ë³´ë¤ í¬ë©´ ë°ìí©ëë¤.
ì¤ëª
BigInt.asUintN ë©ìëë BigInt ê°ì 주ì´ì§ ë¹í¸ ìë¡ ìë¼ë´ê³ ê·¸ 결과를 ë¶í¸ ìë ì ìë¡ í´ìí©ëë¤. ë¶í¸ê° ìë ì ìë ë¶í¸ ë¹í¸ê° ìì¼ë©° ì¸ì ë ììê° ìëëë¤. ì를 ë¤ì´, BigInt.asUintN(4, 25n)ì ê²½ì° 25n ê°ì 9nì¼ë¡ ì립ëë¤.
25n = 00011001 (ì´ì§ì)
^==== ì¤ì§ ë¨ì 4ê°ì ë¹í¸ë§ ì¬ì©
===> 1001 (ì´ì§ì) = 9n
ì°¸ê³ :
BigInt ê°ì ì¸ì ë ì´ì§ì 2ì ë³´ìë¡ ì¸ì½ë©ë©ëë¤.
Number.prototype.toExponential()ì ê°ì ì ì¬í ì¸ì´ APIì ë¬ë¦¬ asUintNì BigIntì ì ì ìì±ì´ë¯ë¡ íì BigInt ê°ì ë©ìëê° ìë BigInt.asUintN()ì¼ë¡ ì¬ì©í©ëë¤. asUintN()ì "íì¤ ë¼ì´ë¸ë¬ë¦¬ í¨ì"ë¡ ë
¸ì¶íë©´ asm.jsìì ìí¸ ì´ì©ì í ì ììµëë¤.
ìì
>64ë¹í¸ ë²ìì 머무르기
64ë¹í¸ ì°ì° ë²ì를 ì ì§íë ë° BigInt.asUintN() ë©ìëê° ì ì©í ì ììµëë¤.
const max = 2n ** 64n - 1n;
BigInt.asUintN(64, max); // 18446744073709551615n
BigInt.asUintN(64, max + 1n); // 0n
// ì¤ë²íë¡ì°ë문ì 0ì
ëë¤. ê°ì¥ íì 64ë¹í¸ë 모ë 0ì
ëë¤.
ëª ì¸ì
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-bigint.asuintn> |