ในปัญหานี้ เราได้รับค่า n และ k สองค่า งานของเราคือ หาค่าของบิตที่ k ในการแทนค่าไบนารี .
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
Input : n= 5, k = 2 Output : 0
คำอธิบาย −
Binary of 5 = 0101 Second LSB bit is 0.
แนวทางการแก้ปัญหา
วิธีแก้ปัญหาคือทำการแปลงค่าบิต AND ของการแปลงเลขฐานสองของตัวเลข N ด้วยตัวเลขที่ไม่ได้ตั้งค่าบิตทั้งหมดและตั้งค่าหนึ่งบิตซึ่งอยู่ที่ตำแหน่ง k เพื่อให้ได้ผลลัพธ์
ตัวอย่าง
โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา
#include <iostream>
using namespace std;
void findKBitVal(int n, int k){
cout<< ((n & (1 << (k - 1))) >> (k - 1));
}
int main(){
int n = 29, k = 4;
cout<<"The value of kth bit in binary of the number is ";
findKBitVal(n, k);
return 0;
} ผลลัพธ์
The value of kth bit in binary of the number is 1