본문 바로가기
JavaScript/메소드

[javascript] 거듭제곱, **, <<

by Angry Stock 2023. 9. 3.
반응형
거듭제곱 연산자(**)는 왼쪽 피연산자를 밑, 오른쪽 피연산자를 지수로 한 값을 구합니다. BigInt 도 피연산자로 받을 수 있다는 점을 제외하면 Math.pow() 와 같습니다.
console.log(3 ** 4);
// Expected output: 81

console.log(10 ** -2);
// Expected output: 0.01

console.log(2 ** (3 ** 2));
// Expected output: 512

console.log((2 ** 3) ** 2);
// Expected output: 64
왼쪽 시프트 (<<) 연산자는 첫 번째 피연산자를 명시된 비트 수(32의 나머지)만큼 왼쪽으로 이동합니다. 왼쪽으로 이동된 초과 비트는 폐기됩니다. 오른쪽은 움직인 비트 수 만큼 0비트로 채워집니다.
const a = 5; // 00000000000000000000000000000101
const b = 2; // 00000000000000000000000000000010

console.log(a << b); // 00000000000000000000000000010100
// Expected output: 20
연습
function solution1(n, m) {
  return n ** m;
}

function solution2(n, m) {
  return n << m;
}
function solution3(n, m) {
  return 2 * n ** m;
}

let n = [2, 2, 2];
let m = [2, 3, 4];

for (let i = 0; i < n.length; i++) {
  console.log('solution1', solution1(n[i], m[i]));
  console.log('solution2', solution2(n[i], m[i]));
  console.log('solution3', solution3(n[i], m[i]));
}
결과

반응형

댓글