ภาพรวมปัญหา
ได้รับตัวเลข n และ k ต้องพิมพ์บิตนัยสำคัญตัวที่ k ของ n
ตัวอย่าง
Input: n = 12, k = 3 Output: 1 Explanation: 12 = 1100 (binary), บิตตัวที่ 3 จากขวาคือ 1
วิธีแก้ปัญหา
ใช้ Bitwise Operation: เลื่อนบิต (left shift) 1 ไป (k-1) ตำแหน่ง แล้วทำ AND (&) กับ n
สูตร: kthLSB = (n & (1 << (k-1)))
ตัวอย่างโค้ด C++
#include <bits/stdc++.h>
using namespace std;
int main() {
int N = 12, K = 3;
cout << K << "th significant bit of " << N << " is : ";
bool kthLSB = (N & (1 << (K-1)));
cout << kthLSB;
return 0;
}
ผลลัพธ์
3th significant bit of 12 is : 1