একটি সংখ্যার সবচেয়ে ডানের সেট বিট (১) ক্লিয়ার করতে n & (n-1) বিটওয়াইজ অপারেশন ব্যবহার করা হয়। এটি বাইট ম্যানিপুলেশনের একটি ক্লাসিক ট্রিক।
উদাহরণ
def clear_rightmost_set_bit(n):
return n & (n - 1)
num = 6 # বাইনারি: 110
print("মূল সংখ্যা:", num)
print("রাইটমোস্ট সেট বিট ক্লিয়ার করার পর:", clear_rightmost_set_bit(num))
আউটপুট
মূল সংখ্যা: 6 রাইটমোস্ট সেট বিট ক্লিয়ার করার পর: 4
ব্যাখ্যা
clear_rightmost_set_bitফাংশন ইন্টিজার প্যারামিটার নেয়।n & (n-1)এক্সপ্রেশনটি n-এর লিস্ট সিগনিফিক্যান্ট সেট বিটকে ০ করে দেয়।উদাহরণ: 6 (110) → 6-1=5 (101) → 110 & 101 = 100 (4)।
এই টেকনিক সেট বিট গণনা, পাওয়ার অফ টু চেক ইত্যাদিতে কাজে আসে।