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

พิมพ์บิตนัยสำคัญ (Least Significant Bit) ตำแหน่งที่ K ใน C++


ภาพรวมปัญหา

ได้รับตัวเลข 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