반응형
자바스크립트에서 BigInt
는 정수의 범위가 매우 크거나 작은 경우, 또는 정밀한 수학 연산을 수행할 때 사용됩니다. BigInt
는 일반 숫자형(Number
)과는 달리 임의의 정밀도를 가진 정수를 다룰 수 있습니다.
1. BigInt
의 특징:
- 임의의 크기 정수를 표현할 수 있습니다.
- 64비트 부동소수점 숫자의 정밀도를 넘는 정수를 처리할 수 있습니다.
BigInt
는Number
와는 다른 별개의 데이터 타입입니다.BigInt
리터럴은 숫자 끝에n
을 추가하여 표현합니다. 예:12345678901234567890n
2. 사용 예:
1. 기본 사용법:
let bigIntValue = 1234567890123456789012345678901234567890n;
console.log(bigIntValue); // 출력: 1234567890123456789012345678901234567890n
2. 연산 (사칙연산, 비트 연산 등):
let a = 1000000000000000000000n;
let b = 2000000000000000000000n;
// 덧셈
let sum = a + b; console.log(sum); // 출력: 3000000000000000000000n
// 뺄셈
let difference = b - a; console.log(difference); // 출력: 1000000000000000000000n
// 곱셈
let product = a * b; console.log(product); // 출력: 2000000000000000000000000000000000000000n
// 나눗셈
let division = b / a; console.log(division); // 출력: 2n
// 나머지
let remainder = b % a; console.log(remainder); // 출력: 0n
3. BigInt와 Number의 혼합 사용 제한:
BigInt
는Number
와 직접적으로 혼합할 수 없습니다. 혼합 사용을 위해서는 명시적인 변환이 필요합니다.
let num = 10;
let bigIntNum = 20n;
// 직접적인 혼합 사용은 오류를 발생시킴
// let result = num + bigIntNum; // TypeError
// 명시적 변환을 통해 혼합 사용
let result = BigInt(num) + bigIntNum;
console.log(result); // 출력: 30n
4. 비교 연산:
BigInt
는Number
와 비교할 수 있지만, 이는 항상 두 값이 변환 없이도 안전하게 비교될 수 있는지에 따라 다릅니다.
let bigIntValue = 10n;
let numValue = 10;
console.log(bigIntValue == numValue); // true
console.log(bigIntValue === numValue); // false (다른 타입)
5. 함수 내에서 사용:
BigInt
를 함수 인수나 반환값으로 사용할 수 있습니다.
function addBigInts(a, b) {
return a + b;
}
let result = addBigInts(12345678901234567890n, 98765432109876543210n);
console.log(result); // 출력: 111111111011111111100n
6. BigInt 변환:
- 문자열이나 숫자를 BigInt로 변환할 수 있습니다.
let bigIntFromString = BigInt("123456789012345678901234567890");
console.log(bigIntFromString); // 출력: 123456789012345678901234567890n
let bigIntFromNumber = BigInt(1234567890);
console.log(bigIntFromNumber); // 출력: 1234567890n
3. 주의사항:
- BigInt는 부동소수점 수학 연산에 적합하지 않습니다. 예를 들어, 소수점 연산이 필요할 때는 여전히 Number를 사용해야 합니다.
- 대부분의 브라우저 및 자바스크립트 엔진에서
BigInt
는 지원되지만, 특정 환경에서는 지원되지 않을 수 있습니다. 따라서 사용 전에 해당 환경에서의 지원 여부를 확인하는 것이 좋습니다.
이 예제들을 통해 BigInt
의 사용법과 특성을 이해할 수 있을 것입니다.
반응형
'언어 > Javascript' 카테고리의 다른 글
[ JavaScript ] Visual Code에서 바로 실행해 보자. (0) | 2024.06.17 |
---|---|
[ JavaScript ] Number.isFinite() 사용하기 (0) | 2024.06.09 |
[ JavaScript ] 숫자 다루기 (0) | 2024.06.09 |
[ JavaScript ] 데이터 타입 알아보기 (0) | 2024.06.09 |
[ JavaScript ] 시작하기 (0) | 2024.06.09 |