ในปัญหานี้ เราได้รับค่า 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