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.
BigInt.asUintN()
정적 메서드는 BigInt
값을 주어진 최하위 비트 수로 자르고 해당 값을 부호 없는 정수로 반환합니다.
시도해보기
구문
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 Language Specification # sec-bigint.asuintn |
브라우저 호환성
BCD tables only load in the browser