본문 바로가기

언어/Javascript

[ 자바스크립트 / JavaScript ] 'BigInt' 사용하기

반응형

자바스크립트에서 BigInt는 정수의 범위가 매우 크거나 작은 경우, 또는 정밀한 수학 연산을 수행할 때 사용됩니다. BigInt는 일반 숫자형(Number)과는 달리 임의의 정밀도를 가진 정수를 다룰 수 있습니다.

1. BigInt의 특징:

  • 임의의 크기 정수를 표현할 수 있습니다.
  • 64비트 부동소수점 숫자의 정밀도를 넘는 정수를 처리할 수 있습니다.
  • BigIntNumber와는 다른 별개의 데이터 타입입니다.
  • 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의 혼합 사용 제한:

  • BigIntNumber와 직접적으로 혼합할 수 없습니다. 혼합 사용을 위해서는 명시적인 변환이 필요합니다.
let num = 10;
let bigIntNum = 20n;

// 직접적인 혼합 사용은 오류를 발생시킴
// let result = num + bigIntNum; // TypeError

// 명시적 변환을 통해 혼합 사용
let result = BigInt(num) + bigIntNum;
console.log(result); // 출력: 30n

   4. 비교 연산:

  • BigIntNumber와 비교할 수 있지만, 이는 항상 두 값이 변환 없이도 안전하게 비교될 수 있는지에 따라 다릅니다.
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의 사용법과 특성을 이해할 수 있을 것입니다.

반응형