সমস্যা বিবরণ
দুটি মান n এবং k দেওয়া হয়েছে। আমাদের কাজ হল সংখ্যা n-এর বাইনারি রিপ্রেজেন্টেশনে k-তম বিটের মান (0 বা 1) বের করা।
উদাহরণ
ইনপুট: n = 5, k = 2 আউটপুট: 0 ব্যাখ্যা: 5-এর বাইনারি = 0101, দ্বিতীয় LSB বিট = 0।
সমাধানের পদ্ধতি
বিটওয়াইজ AND অপারেশন ব্যবহার করে: (n & (1 << (k-1))) >> (k-1)। এখানে (1 << (k-1)) k-তম বিট ছাড়া সব বিট 0 রাখে।
প্রোগ্রাম উদাহরণ
#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