Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Kiểm tra lũy thừa của 2 bằng thao tác bitwise trong JavaScript


Chúng ta cần viết hàm nhận số và xác định xem nó có phải lũy thừa của 2 hay không.

Ví dụ - f(23)=false, f(16)=true, f(1)=true, f(1024)=true.

Cách tiếp cận - Lũy thừa của 2 trong nhị phân luôn chỉ có 1 bit: 1=0001, 2=0010, 4=0100, 8=1000. Sau khi kiểm tra số >0, dùng thủ thuật bitwise: num & (num - 1) === 0.

Ví dụ

Code sau đây:

const num1 = 256; 
const num2 = 1024; 
const isPowerOfTwo = (num = 1) => { 
  if (num < 1) return false; 
  return (num & (num - 1)) === 0; 
}; 
console.log(isPowerOfTwo(num1)); 
console.log(isPowerOfTwo(num2)); 
console.log(isPowerOfTwo(1)); 
console.log(isPowerOfTwo(23));

Kết quả

Kết quả trên console:

true true true false