Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การตรวจสอบกำลังของ 2 ด้วย Bitwise Operations ใน JavaScript

เราต้องเขียนฟังก์ชันตรวจสอบว่าตัวเลขเป็นกำลังของ 2 หรือไม่ โดยใช้ bitwise operation

หลักการ: กำลังของ 2 ในรูป binary จะมี bit 1 เพียงตัวเดียว (เช่น 1=0001, 2=0010, 4=0100, 8=1000) ดังนั้น num & (num - 1) จะเท่ากับ 0

ตัวอย่างโค้ด

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));

ผลลัพธ์

ค่าที่แสดงในคอนโซลจะเป็นดังนี้:

true true true false