এই ফাংশনটি pos পজিশন থেকে k বিট এক্সট্রাক্ট করে এক্সট্রাক্টেড ভ্যালু রিটার্ন করে। এখানে পাইথন স্লাইসিং টেকনিক ব্যবহার করা হয়েছে।
উদাহরণ
ইনপুট:: number=170 K=5 Pos=2 আউটপুট=21
অ্যালগরিদম
Extractionbit(no,k,pos) /* ইউজার ইনপুট সংখ্যা no-তে, এক্সট্রাক্টেড বিট k-তে, বিটের পজিশন pos-এ */ ধাপ ১: সংখ্যাকে bin() দিয়ে বাইনারি ফর্মে রূপান্তর করুন। ধাপ ২: প্রথম দুটি ক্যারেক্টার সরান। ধাপ ৩: ডান পাশ থেকে pos পজিশন থেকে k বিট এক্সট্রাক্ট করুন। তাই, এক্সট্রাক্টিং সাবস্ট্রিংয়ের এন্ডিং ইনডেক্স e = len(bi) - pos এবং স্টার্টিং ইনডেক্স = e - k + 1 ধাপ ৪: k বিট সাবস্ট্রিং এক্সট্রাক্ট করুন। ধাপ ৫: এক্সট্রাক্টেড সাবস্ট্রিংকে আবার ডেসিমলে রূপান্তর করুন।
উদাহরণ কোড
# পাইথন প্রোগ্রাম: সংখ্যার নির্দিষ্ট পজিশন থেকে 'k' বিট এক্সট্রাক্ট
def extractedbits(no, k, pos):
bi = bin(no)
bi = bi[2:]
e = len(bi) - pos
s = e - k + 1
substr = bi[s:e+1]
print("চূড়ান্ত ফলাফল ::>", int(substr, 2))
# ড্রাইভার প্রোগ্রাম
if __name__ == "__main__":
no = int(input("সংখ্যা দিন ::>"))
k = int(input("k বিট দিন ::>"))
pos = int(input("পজিশন দিন ::>"))
extractedbits(no, k, pos)
আউটপুট
সংখ্যা দিন ::>170 k বিট দিন ::>5 পজিশন দিন ::>2 চূড়ান্ত ফলাফল ::>21