इस समस्या में, हमें दो मान n और k दिए गए हैं। हमारा कार्य बाइनरी प्रतिनिधित्व में k-वें बिट का मान ज्ञात करना है।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट : n= 5, k = 2 आउटपुट : 0
व्याख्या −
5 का बाइनरी = 0101 दूसरा LSB बिट 0 है।
समाधान दृष्टिकोण
समस्या का एक समाधान संख्या N के बाइनरी रूपांतरण का एक संख्या के साथ बिटवाइज़ AND करना है जिसके सभी बिट्स अनसेट हैं और एक बिट सेट है जो 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<<"संख्या के बाइनरी में k-वें बिट का मान है "; findKBitVal(n, k); return 0; } आउटपुट
संख्या के बाइनरी में k-वें बिट का मान है 1