समस्या विवरण
यह फंक्शन pos स्थिति से k बिट्स निकालने के लिए उपयोग किया जाता है और निकाले गए मान को लौटाता है। यहां हम पायथन स्लाइसिंग तकनीक का उपयोग करते हैं।
उदाहरण
इनपुट:: संख्या=170 K=5 Pos=2
आउटपुट=21
एल्गोरिदम
- सबसे पहले संख्या को
bin()का उपयोग करके बाइनरी रूप में बदलें। - पहले दो वर्ण हटाएं।
- फिर दाईं ओर से प्रारंभिक स्थिति pos से k बिट्स निकालें। इसलिए, निकालने वाली सबस्ट्रिंग का अंतिम इंडेक्स e=len(bi)-pos और प्रारंभिक इंडेक्स s=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